2 回答

TA貢獻1875條經(jīng)驗 獲得超3個贊
你的是一個字符串,但你根本不需要它。serializedObject
由于您不會反序列化為具體類型,因此您的只是一個 .所以你需要這個:jsonObj["animals"]JArray
dynamic jsonObj = JsonConvert.DeserializeObject(json);
jsonObj["animals"] = JArray.FromObject(animals);
現(xiàn)在,您可以通過 將其序列化回去。JsonConvert.SerializeObject

TA貢獻1803條經(jīng)驗 獲得超6個贊
如果這是一個常規(guī)對象,則只需設(shè)置屬性的值即可。如果它是一個ExpandoObject,那也同樣有效。 雖然生成一個 Json.Net 類型,其數(shù)據(jù)必須 Json.NET 類型有效。jsonObjanimalsJsonConvert.DeserializeObject(json)
您可以將列表內(nèi)容作為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"]}
僅當(dāng)文件包含 JSON 字典時,添加新屬性才有效。如果您知道該文件將始終包含字典,則可以將反序列化結(jié)果強制轉(zhuǎn)換為 JObject,并通過 JObject 的索引器添加新屬性:
var jsonObj = (JObject)JsonConvert.DeserializeObject("{'moo':1}");
jsonObj["animals"]= new JArray(animals);
- 2 回答
- 0 關(guān)注
- 200 瀏覽
添加回答
舉報