c# - 替换多个 JObject 中属性的 JSON 值

标签 c# json linq visual-studio-2012 json.net

我有一个 JSON 文件,我正在从文本中读取它并使用 Newtonsoft.Json.Linq 将其解析为 JObject。 JSON 文件如下所示:

{  
   "EntityTypeDto":[  
      {  
         "EntityType":"Grade",
         "Language":"ES"
      },
      {  
         "EntityType":"ApplicationType",
         "Language":"ES"
      },
      {  
         "EntityType":"Borough",
         "Language":"ES"
      }

   ]
}

使用 Newtonsoft 库,是否有任何方法可以利用 JObject 将所有对象的 Language 属性替换为另一个值?如果不是,另一种方法是什么?此项目是 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";
}

关于c# - 替换多个 JObject 中属性的 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43235280/

相关文章:

java - 使用 GSON 访问 JSON 元素

json - 将 bash 变量写入 JSON 模板文件

Stringify 删除了具有 Symbol 属性的 JavaScript 对象

c# - 任何人都可以帮助转换下面的 linq 查询吗?

c# - 从数据表中选择 50 到 100 行

c# - 在单元测试中模拟对话框

c# - 当投影到 Dto 时,如何动态构建 'where' 子句?

c# - 带有故障消息的 WCF 服务单向方法

c# - 在没有实际文件的情况下使用 FileStream

linq - 使用类的最大值 LINQ