当前位置: 首页 > 面试题库 >

如何使用NewtonSoft更新JSON对象的属性

艾哲
2023-03-14
问题内容

我有一个像这样的JSON字符串:

{
    "code": "GENDER",
    "value": { "option": "ML" }
}

我想将option属性更新为,"Male"如果值为,"ML"并且"Female"值为"FM"

我已经到了这一点,但是不确定如何进行:

JArray contentobject = (JArray)JsonConvert.DeserializeObject(contentJSON);  
JObject voicgObj = contentobject.Children().FirstOrDefault(ce =>   ce["code"].ToString() == "GENDER") as JObject;
JProperty voicgProp = voicgObj.Property("value");

我不知道怎么去的option是一个孩子value

提前致谢。任何指针都很棒。


问题答案:

您可以使用属性作为键来访问对象:

JObject obj = JObject.Parse(json);
string gender = (string)obj["value"]["option"];

对于您的示例,请尝试:

JObject obj = JObject.Parse(json);
var val = obj["value"];
string option = (string)val["option"];

if (option == "ML")
   val["option"] = "Male";

if (option == "FM")
   val["option"] = "Female";

string result = obj.ToString();


 类似资料:
  • 问题内容: 如何使用javascript或jQuery动态更新以下JSON对象? 我想将用户名动态更新为“ Id”为“ 3”的“ Thomas”。 我该如何实现? 问题答案: 一个简单的JavaScript解决方案,假定已经包含JSON: 在其上循环查找匹配的ID,设置相应的用户名,并在修改了匹配项之后从循环中进行查找: 它在jsFiddle上。 这是包装在函数中的同一件事:

  • 问题内容: 我想在REST应用程序中接受和响应JSON对象。我需要发送和接收的数据在.properties文件中。我已经阅读了它们,现在位于Object(From )中。是否可以在不实现新类的情况下编组和解组对象? 我在Weblogic服务器中使用Jax-rs API。 问题答案: 对WebLogic不太熟悉,因此我不知道它使用的是哪个版本的Jersey(1.x或2.x),但是使用1.x,您可以简

  • 问题内容: 我想在Qml中显示一个矩形,并且想从我的python代码中更改矩形的属性(宽度,长度)。实际上,在python代码中有一个套接字连接,通过该套接字连接可以从另一台计算机接收width和length的值。简而言之:另一个用户应该能够实时调整此矩形。我知道如何在我的python文件中建立套接字连接,并使用PyQt5,我可以显示来自python的qml文件。 但是,我在通过python代码访

  • 问题内容: 我目前正在尝试使用Firestore,但遇到了非常简单的问题:“更新数组(又称子文档)”。 我的数据库结构非常简单。例如: 我正在尝试(没有成功)将新记录推入对象数组。 我试过了: 没有效果。这些查询将覆盖我的数组。 答案可能很简单,但我找不到它… 问题答案: 当前无法在Cloud Firestore中更新单个数组元素(或添加/删除单个元素)。 这段代码在这里: 这是说,在设置文件,使

  • 问题内容: 我有一个具有多个相关属性的类,例如: 如果我正常地制作一个对象,那没有问题, 我将得到2个列表,和。 现在,如果我想先创建一个空对象,并为其分配一个属性,则希望其他属性自动更新,例如 我想自动更新,也想自动更新(分配和自动更新)。这可能吗? Class 是否是正确的选择? 谢谢大家,但是所有其他答案让我完全不知所措。谁能提供一个完整的解决方案,让我可以学习编写自己的解决方案? 我想实现

  • 问题内容: 我们如何使JSON属性名称动态化。例如 序列化此对象时,它另存为,但我想使键也像一样动态。任何帮助深表感谢。 问题答案: 您可以使用JsonAnySetter JsonAnyGetter批注。您可以在后面使用实例。万一您总是可以在其他情况下使用或其他实现。下面的示例显示了使用此方法并根据需要创建任意数量的-s是多么容易: 上面的代码打印: