【发布时间】:2020-02-04 10:51:00
【问题描述】:
如果 API 编号存在于 json 中,我需要用新值替换 json 文件中的文件名和位置,否则它应该使用 API、文件和位置添加新的 json 数组。我已经编写了 foreach 循环来执行此操作,但每次添加内容以列出 if 条件将添加的新 api 并与列表进行比较,因此它不断将相同的 api 一次又一次地添加到 json 文件中。请帮我解决这个问题..
List<DPIndex> items = JsonConvert.DeserializeObject<List<DPIndex>>(json);
foreach (var item in items)
{
foreach (var list in dpIndexList)
{
if (item.API == list.API)
{
item.File = list.File;
item.Location = list.Location;
}
else
{
item.API = list.API;
item.File = list.File;
item.Location = list.Location;
}
}
dpNewIndexList.Add(item);
}
string dpIdxObj = JsonConvert.SerializeObject(dpNewIndexList, Formatting.Indented);
Json 文件如下:
[
{
"API": "422833682700000000",
"File": "daf420.dat.07-31-2019",
"Location": 2922
},
{
"API": "422833682700000000",
"File": "daf420.dat.07-31-2019",
"Location": 2922
}
]
【问题讨论】:
-
这能回答你的问题吗? Change values in JSON file (writing files)
-
您可以将
else更改为else if(!dpNewIndexList.Contains(iem)) -
谢谢,但它不起作用
标签: c# json list serialization json-deserialization