JSON.NET向property添加子属性

时间:2018-06-15 01:00:08

标签: c# json parsing json.net

我试图修改一个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。"。

1 个答案:

答案 0 :(得分:1)

您需要向数组添加JObject,而不是JProperty。尝试以下内容:

jTable.Add(
    new JObject(
        new JProperty("alt_id", new JObject(
            new JProperty("alt_id", "2"),
            new JProperty("sub_id2", "30")
        )
    )
);