我正在尝试合并两个JSON文件,我需要添加对象/子对象(嵌套四到五个级别),该对象/子对象不存在,但是如果它们已经存在,则将其覆盖。
到目前为止,我得到了:
var target = File.ReadAllText(filePath);
JObject sourceJObject = JsonConvert.DeserializeObject<JObject>(json);
JObject targetJObject = JsonConvert.DeserializeObject<JObject>(target);
if (!JToken.DeepEquals(sourceJObject, targetJObject))
{
targetJObject.Merge(sourceJObject, new JsonMergeSettings
{
MergeArrayHandling = MergeArrayHandling.Union
});
}
File.WriteAllText(filePath, JsonConvert.SerializeObject(targetJObject, Formatting.Indented));
问题是,现在我添加了所有缺少的内容,但是现有的项目被跳过了。如果我使用MergeArrayHandling.Replace
,它们将被替换,但不会被添加。问题:如何同时使用两者?
答案 0 :(得分:1)
那你不能同时做两个吗?:
// http://127.0.0.1:8000/expenditure/add
{
"account_head": [
"5"
],
"description": [
null
],
"amount": [
"5000"
]
}