我试图修改一个JSON字符串,我想在属性中添加一个子属性。
原创JSON:
{
"main_table": [{
"id_no": 1,
"alt_id": 2
}]
}
所需的JSON:
{
"main_table": [{
"id_no": 1,
"alt_id": {
"alt_id": 2,
"sub_id2": 30
}
}]
}
这就是我试图实现这个目标的方式 -
方法1:
var jTable = (JObject)jsonO["main_table"].FirstOrDefault();
if (jTable != null)
{
var jProp = jTable.Property(colToModify);
jTable.Remove();
jTable.Add(new JProperty("alt_id", new JProperty[]
{ new JProperty("alt_id", "2"), new JProperty("sub_id2", "30")}
));
}
我收到错误"无法将Newtonsoft.Json.Linq.JProperty添加到Newtonsoft.Json.Linq.JArray。"。
答案 0 :(得分:1)
您需要向数组添加JObject
,而不是JProperty
。尝试以下内容:
jTable.Add(
new JObject(
new JProperty("alt_id", new JObject(
new JProperty("alt_id", "2"),
new JProperty("sub_id2", "30")
)
)
);