C# JSON文件未更新-正在获取;无法对空引用执行运行时绑定;错误
使用C#,我试图更改JSON文件中的值,但是这些值没有更改。 下面是JSON-我打算更改C# JSON文件未更新-正在获取;无法对空引用执行运行时绑定;错误,c#,json,C#,Json,使用C#,我试图更改JSON文件中的值,但是这些值没有更改。 下面是JSON-我打算更改 { "client": { "name": "ClientName", "pageTitle": "PageTitle", "serverId": 234 }, "connection": { "router": { "webSocketURL": "wss://pbnasdadasdasd",
{
"client": {
"name": "ClientName",
"pageTitle": "PageTitle",
"serverId": 234
},
"connection": {
"router": {
"webSocketURL": "wss://pbnasdadasdasd",
"signalRUrl": "https://pbncrasdasdasdasd",
"endPoint": "https://pbncasdasdadasd",
"type": "BabelFish",
"protocol": "WebClientGameplayProtocol.WebClientGameplayProtocolDefinition",
"transport": [
"webSockets"
]
}
}
}
这就是我的C#代码在方法中的样子
string json = File.ReadAllText(Jsonfile);
dynamic jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
jsonObj["client"]["serverId"] = "7001";
jsonObj["client"]["connection"]["router"]["webSocketURL"] = "wss://xrouter.program.eu";
jsonObj["client"]["connection"]["router"]["signalRUrl"] = "https://xrouter.program.eu/h";
jsonObj["client"]["connection"]["router"]["endPoint"] = "https://xrouter.program.eu/";
当我运行我的代码时,我得到一个“不能对空引用执行运行时绑定”错误,并且不确定为什么在该区域中已经有值。****我不再得到这个错误-我在jsonObj中的路径不正确****
请参见下面的错误:
提前感谢。此错误是由于
jsonObj[“客户端”][“连接”]…
造成的,其中[“客户端”]
对于连接属性不存在。请尝试使用JObject.Parse
string json = File.ReadAllText(Jsonfile);
var jsonObj = JObject.Parse(json);
jsonObj["client"]["serverId"] = "7001";
jsonObj["connection"]["router"]["webSocketURL"] = "wss://xrouter.program.eu";
jsonObj["connection"]["router"]["signalRUrl"] = "https://xrouter.program.eu/h";
jsonObj["connection"]["router"]["endPoint"] = "https://xrouter.program.eu/";
Console.WriteLine(jsonObj.ToString());
输出
{
"client": {
"name": "ClientName",
"pageTitle": "PageTitle",
"serverId": "7001"
},
"connection": {
"router": {
"webSocketURL": "wss://xrouter.program.eu",
"signalRUrl": "https://xrouter.program.eu/h",
"endPoint": "https://xrouter.program.eu/",
"type": "BabelFish",
"protocol": "WebClientGameplayProtocol.WebClientGameplayProtocolDefinition",
"transport": [
"webSockets"
]
}
}
}
根据json层次结构,要更新websocket url,需要使用下面的代码行更新属性值
jsonObj["connection"]["router"]["webSocketURL"] = "wss://xrouter.program.eu";
“下面是XML”->而不是JSON?看来这些属性在您的JSON文件中已经完成了(如果您确实提供了JSON而不是截图,那么这对我们的测试非常有帮助)。此外,在您的屏幕截图中,您在应用程序运行时编辑了该行代码,并且需要重新生成才能反映您的更改。@John很抱歉造成混淆,我已编辑了此帖子。出于安全目的,我在运行时编辑了URL以获取屏幕截图。请您将其作为一个完整的文件发布,好吗?目前它已被删除好的,就像你有两个不同的文件,不清楚完整JSON文件中的所有内容。请包括所有内容,包括根对象。确定-因此我看到了错误的地方-现在已经修复,我的根不正确。但是,我仍然没有得到更改的值。确定吗@John@John更新了Json