【发布时间】:2018-12-29 14:32:20
【问题描述】:
我正在尝试更改 JSON 数组集合中的 JSON 消息中的字段 value。不幸的是,JSON.net 文档显示了如何修改集合字段以外的所有内容。
使用以下 JSON 消息结构和提琴手代码,我需要修改 testParams 的 params 数组中的第一个 value 元素字段,但我无法使其工作。它在cJson["value"] = "New value"; 行上引发“对象引用未设置为对象的实例”异常,因为cJson 为空,所以我必须做一些不正确的事情来引用该字段位置。谁能帮我解决这个问题?
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
public class Program
{
public static void Main()
{
String json = @"{
'codeName': '',
'testParams': {
'params': [
{
'name': '',
'value': ''
},
{
'name': '',
'value': ''
}
]
}
}";
var item = JObject.Parse(json);
JObject cJson = (JObject)item["testParams.params[0]"];
cJson["value"] = "New value";
Console.WriteLine(item.ToString(Formatting.Indented));
}
}
“值”字段更改后的输出应如下所示。
{
'codeName': '',
'testParams': {
'testobj': [
{
'name': '',
'value': 'New value'
},
{
'name': '',
'value': ''
}
]
}
}
【问题讨论】:
-
你能负担得起使用动态吗?