使用JSON.NET库查找JArray中的节点(JObject)

15

我正在使用JSON.NET库。我已经创建了一些JObject并将它们添加到了一个JArray中。

JArray array = new JArray();

JObject obj = new JObject();
obj.Add(new JProperty("text", "One"));
obj.Add(new JProperty("leaf", false));
array.Add(obj);

obj = new JObject();
obj.Add(new JProperty("text", "Two"));
obj.Add(new JProperty("leaf", false));
array.Add(obj);

obj = new JObject();
obj.Add(new JProperty("text", "Three"));
obj.Add(new JProperty("leaf", true));
array.Add(obj);

现在我想找到一个文本(JProperty)为Two的 JObject。通过使用 JProperty,如何在 JArray 中查找 JObject。

1个回答

34

你可以像这样找到它:

JObject jo = array.Children<JObject>()
    .FirstOrDefault(o => o["text"] != null && o["text"].ToString() == "Two");

这将在JArray中查找第一个具有名为text且值为Two的属性的JObject。如果不存在这样的JObject,则jo将为null。


非常感谢!我也遇到了同样的问题,这个方法非常有效。点赞! :) - Fabiano
感谢您的解决方案,我成功解决了我的问题,这个问题与您的非常相似。 - Mec-Eng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接