C# JSON元素阅读器.NET
我有一个简单的JSON示例,如下所示:C# JSON元素阅读器.NET,c#,json,winforms,json.net,C#,Json,Winforms,Json.net,我有一个简单的JSON示例,如下所示: { "items": { "element": ["item 1","item 2"] }, "name": "James" } JSON模式如下: { 'type': 'object', 'properties': { 'name': {'type':'string'}, 'items': { 'type': 'object', 'properties':{
{
"items": {
"element": ["item 1","item 2"]
},
"name": "James"
}
JSON模式如下:
{
'type': 'object',
'properties': {
'name': {'type':'string'},
'items': {
'type': 'object',
'properties':{
'element':{
'type':'array',
'items':[{'type':'string', 'type':'string'}]
}
}
}
},
'additionalProperties': false
}
使用给定的模式和数据在JSON.NET中调用“IsValid()”
方法将返回VALID
问题:
如何遍历和编辑JSON中的元素
我的目标是在数据库中查找节点
“element”
的值,然后将其替换为通用值(如果它们存在),例如“item 1”
在数据库中存在,并将替换为“general value a”
。但是,数据库中不存在“item 2”
,当调用IsValid()
方法时,应该抛出某种错误消息。
请注意,这是一个使用.NET 4.5和JSON.NET库的桌面应用程序,它将用作数据清理工具。我对任何类型的替代库都持开放态度,只要它们与.NET 4.5兼容。对于
IsValid()。
首先在VS的软件包管理器中安装Newtonsoft.Json:安装软件包Newtonsoft.Json
创建类jsonims
,它描述了您的输入JSON层次结构
class JsonItems
{
public Items items;
public string name;
}
class Items
{
public List<string> elements { get; set; }
}
二,。第二种方法更快(在实现中),但在运行时不太安全。借助动态
dynamic d = JObject.Parse(jsonItems);
d.items.element[1] = "item 3";
我使用Newtonsoft的JSON库。例如,您可以使用JToken类方法进行遍历。
dynamic d = JObject.Parse(jsonItems);
d.items.element[1] = "item 3";