在几个 JObject 中替换 属性 的 JSON 值
Replace a JSON value of a property in several JObjects
我有一个 JSON 文件,我正在从文本中读取并使用 Newtonsoft.Json.Linq 将其解析为 JObject。 JSON 文件如下所示:
{
"EntityTypeDto":[
{
"EntityType":"Grade",
"Language":"ES"
},
{
"EntityType":"ApplicationType",
"Language":"ES"
},
{
"EntityType":"Borough",
"Language":"ES"
}
]
}
使用 Newtonsoft 库,是否有任何方法可以利用 JObject 将所有对象的语言 属性 替换为另一个值?如果不是,另一种方法是什么?此项目是 C#、VS 2012 中的控制台应用程序,谢谢。
这里不需要Linq来实现你需要的,Linq是用来查阅数据的,不是用来修改数据的。所以你可以,例如,一个 foreach
来迭代和修改数组的元素:
JObject json= JObject.Parse(jsonString);
JArray entityTypeDtos= (JArray)json["EntityTypeDto"];
foreach(var e in entityTypeDtos)
{
if(e["Language"] != null)
e["Language"]="EN";
}
我根据 Linq
标签猜测您想要 Linq
方法试试这个
string json = @"{
'EntityTypeDto':[
{
'EntityType':'Grade',
'Language':'ES'
},
{
'EntityType':'ApplicationType',
'Language':'ES'
},
{
'EntityType':'Borough',
'Language':'ES'
}
]
}";
JObject myjobj = JObject.Parse(json);
JArray EntityType = (JArray)myjobj["EntityTypeDto"];
(from eobj in EntityType
where eobj["Language"]="ES"
select eobj).ForEach(x => x["Language"]="New Value");
我有一个 JSON 文件,我正在从文本中读取并使用 Newtonsoft.Json.Linq 将其解析为 JObject。 JSON 文件如下所示:
{
"EntityTypeDto":[
{
"EntityType":"Grade",
"Language":"ES"
},
{
"EntityType":"ApplicationType",
"Language":"ES"
},
{
"EntityType":"Borough",
"Language":"ES"
}
]
}
使用 Newtonsoft 库,是否有任何方法可以利用 JObject 将所有对象的语言 属性 替换为另一个值?如果不是,另一种方法是什么?此项目是 C#、VS 2012 中的控制台应用程序,谢谢。
这里不需要Linq来实现你需要的,Linq是用来查阅数据的,不是用来修改数据的。所以你可以,例如,一个 foreach
来迭代和修改数组的元素:
JObject json= JObject.Parse(jsonString);
JArray entityTypeDtos= (JArray)json["EntityTypeDto"];
foreach(var e in entityTypeDtos)
{
if(e["Language"] != null)
e["Language"]="EN";
}
我根据 Linq
标签猜测您想要 Linq
方法试试这个
string json = @"{
'EntityTypeDto':[
{
'EntityType':'Grade',
'Language':'ES'
},
{
'EntityType':'ApplicationType',
'Language':'ES'
},
{
'EntityType':'Borough',
'Language':'ES'
}
]
}";
JObject myjobj = JObject.Parse(json);
JArray EntityType = (JArray)myjobj["EntityTypeDto"];
(from eobj in EntityType
where eobj["Language"]="ES"
select eobj).ForEach(x => x["Language"]="New Value");