C# 从大文件中删除JSON对象
我有一个JSON文件,我希望能够在C#中修改它。我希望能够删除一组数据C# 从大文件中删除JSON对象,c#,json,C#,Json,我有一个JSON文件,我希望能够在C#中修改它。我希望能够删除一组数据 [ { "ID": "ID0000001", "Name": "ABCD", "Std": "4" }, { "ID": "ID5335355", "Name": "JKLM", "Std": "6" }, { "ID": "ID53534535", "Name": "XYZ", "Std": "12" } ] 如何删除一个id、名称和标准,如下所示
[
{
"ID": "ID0000001",
"Name": "ABCD",
"Std": "4"
},
{
"ID": "ID5335355",
"Name": "JKLM",
"Std": "6"
},
{
"ID": "ID53534535",
"Name": "XYZ",
"Std": "12"
}
]
如何删除一个id、名称和标准,如下所示:
{
"ID": "ID0000001",
"Name": "ABCD",
"Std": "4"
}
[
{
"ID": "ID5335355",
"Name": "JKLM",
"Std": "6"
},
{
"ID": "ID53534535",
"Name": "XYZ",
"Std": "12"
}
]
删除此json文件后,如下所示:
{
"ID": "ID0000001",
"Name": "ABCD",
"Std": "4"
}
[
{
"ID": "ID5335355",
"Name": "JKLM",
"Std": "6"
},
{
"ID": "ID53534535",
"Name": "XYZ",
"Std": "12"
}
]
我需要对Json文件执行逐个删除操作。Json文件可能包含数千个结果,我真的需要尽可能高性能的方法
非常感谢您的帮助。您可以使用
Json.NET
将字符串反序列化为对象。然后使用Linq
选择想要的项目,然后再次使用Json.NET
获取Json
字符串
public class Item
{
public int ID {get; set;}
public string Name{get;set;}
public int Std {get; set;}
}
var items = JsonConvert.DeserializeObject<List<Item>>(JsonString);
var newJsonString = JsonConvert.SerializeObject(items.Where(i => i.ID != "ID0000001"));
公共类项目
{
公共int ID{get;set;}
公共字符串名称{get;set;}
公共int Std{get;set;}
}
var items=JsonConvert.DeserializeObject(JsonString);
var newJsonString=JsonConvert.SerializeObject(items.Where(i=>i.ID!=“ID0000001”);
我认为您需要将JSON转换为对象列表,将其删除并序列化回JSONC这些操作是否可以逐个批处理,还是必须单独执行?也许您应该研究BSON格式。解析itI会更快。我无法理解要删除的代码在哪里,请建议。items.where(i=>i.ID!=“ID0000001”)返回除ID为“ID0000001”的项目外的所有项目。