我試圖向現有的JSON
JObject
添加新節點,但是當我添加它時無法正確格式化。它在整個節點中添加引號,並將其放置到位。JSON將節點添加到現有的JObject中
背景: 我加載JSON
文件,做一些邏輯,然後添加一個節點早在想我能做到這一點是這樣的:
mainJson.Add("NewNode", JsonConvert.SerializeObject(MyObject));
File.WriteAllText("myfile.json", mainJson.ToString());
問題是,這是結果:
{
"JSONFile": [
{
"More": "Nodes",
"InThe": "File"
}
],
"Customers": "{\"FirstName\":\"Mike\",\"LastName\":\"Smith\"},{\"FirstName\":\"Jane\",\"LastName\":\"Doe\"}",
}
我知道我的JsonConvert.SerializeObject(myObject的)是,如果我這樣做的工作:
string json = JsonConvert.SerializeObject(MyObject);
File.WriteAllText("myfile2.json" json);
結果是這樣的:
[
{
"FirstName": "Mike",
"LastName": "Smith"
},
{
"FirstName": "Jane",
"LastName": "Doe"
}
]
我缺少什麼?
編輯: 正在關注@Swagata Prateek對此評論;
mainJson.Add("Customers",JObject.FromObject(MyObject));
類型 'System.ArgumentException' 的未處理的異常發生在Newtonsoft.Json.dll
其他信息:對象序列化到陣列。預計JObject實例。
我要指出,爲MyObject是實際ObservableCollection
如果有差別
當你調用'JsonConvert.SerializeObject(myObject的)','這裏MyObject'被序列化爲一個字符串,因此'NewNode'這裏展示自己所報的字符串。 :) –