2 回答
TA贡献1875条经验 获得超3个赞
你的是一个字符串,但你根本不需要它。serializedObject
由于您不会反序列化为具体类型,因此您的只是一个 .所以你需要这个:jsonObj["animals"]JArray
dynamic jsonObj = JsonConvert.DeserializeObject(json);
jsonObj["animals"] = JArray.FromObject(animals);
现在,您可以通过 将其序列化回去。JsonConvert.SerializeObject
TA贡献1803条经验 获得超6个赞
如果这是一个常规对象,则只需设置属性的值即可。如果它是一个ExpandoObject,那也同样有效。 虽然生成一个 Json.Net 类型,其数据必须 Json.NET 类型有效。jsonObjanimalsJsonConvert.DeserializeObject(json)
您可以将列表内容作为JArray进行评估,例如:
var animals = new List<string>() { "bird", "dog" };
dynamic jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject("{'moo':1}");
jsonObj.animals= new JArray(animals);
var result=JsonConvert.SerializeObject(jsonObj);
这将是:result
{"moo":1,"animals":["bird","dog"]}
仅当文件包含 JSON 字典时,添加新属性才有效。如果您知道该文件将始终包含字典,则可以将反序列化结果强制转换为 JObject,并通过 JObject 的索引器添加新属性:
var jsonObj = (JObject)JsonConvert.DeserializeObject("{'moo':1}");
jsonObj["animals"]= new JArray(animals);
- 2 回答
- 0 关注
- 163 浏览
添加回答
举报