首页 > 解决方案 > 交换 json 对象中的节点

问题描述

我有包含以下字符串的 json 对象:

{  
   "id":"7081236211",
   "name":"TURYSTYCZNY PLECAK WISPORT REINDEER 75L OLIVE",
   "category":{  
      "id":"147827"
   },
   "parameters":[  
      {  
         "id":"11323",
         "valuesIds":[  
            "11323_1"
         ],
         "values":[  

         ],
         "rangeValue":null
      },
      {  
         "id":"13949",
         "valuesIds":[  
            "13949_225446"
         ],
         "values":[  

         ],
         "rangeValue":null
      }
   ]
}

我想更改动态生成的这个json字符串上的“参数”节点,参数中的节点数不同:

\"parameters\": [
    {
      \"id\": \"11345\",
      \"valuesIds\": [],
      \"values\": [
        \"23424\",
        \"43656\"
       ],
      \"rangeValue\": null
    }]

那么我该怎么做呢?

标签: c#json

解决方案


您可以使用 Newtonsoft.Json 库。

var obj = JsonConvert.DeserializeObject<Rootobject>(input);
var paramToAdd = JsonConvert.DeserializeObject<Parameter>(paramToAddJson);
obj.parameters.Add(paramToAdd);

var output = JsonConvert.SerializeObject(obj);
output.Dump();

public class Rootobject
{
    public string id { get; set; }
    public string name { get; set; }
    public Category category { get; set; }
    public List<Parameter> parameters { get; set; }
}

public class Category
{
    public string id { get; set; }
}

public class Parameter
{
    public string id { get; set; }
    public string[] valuesIds { get; set; }
    public string[] values { get; set; }
    public object rangeValue { get; set; }
}

完整示例


推荐阅读