2 回答

TA貢獻1793條經(jīng)驗 獲得超6個贊
你有兩個我能想到的選擇:
1.將整個文件讀入一個對象,添加你的對象,然后重寫整個文件(性能不佳)
var filePath = @"path.json";
// Read existing json data
var jsonData = System.IO.File.ReadAllText(filePath);
// De-serialize to object or create new list
var SomeObjectList= JsonConvert.DeserializeObject<List<T>>(jsonData)
?? new List<T>();
// Add any new
SomeObjectList.Add(new T()
{
Name = "..."
});
SomeObjectList.Add(new T()
{
Name = "..."
});
// edit
var first = SomeObjectList.FirstOrDefault();
first.Name = "...";
// Update json data string
jsonData = JsonConvert.SerializeObject(SomeObjectList);
System.IO.File.WriteAllText(filePath, jsonData);
打開文件讀/寫,解析直到到達右花括號,然后寫入剩余的數(shù)據(jù),然后寫入右花括號(不是微不足道的)

TA貢獻1848條經(jīng)驗 獲得超10個贊
不要亂搞 JProperty,反序列化你的 json 并附加你想要的數(shù)據(jù):
JObject obj = JObject.Parse(jsontext);
obj["new_prop"] = "value";//new property as per hirarchy ,same for replacing values
string newjson=obj.ToString();
它更清潔,更易于維護。
- 2 回答
- 0 關注
- 549 瀏覽
添加回答
舉報