C#JSON.Net使用LINQ解析并获取与值匹配的所有元素的列表

威信

我在寻找从JObject获取json数组列表的正确方法时遇到了麻烦。
_name数组内的元素应等于foo

这是示例json:

{
    "doc": [{
        "bob": [{
            "tom": [{
                "frank": [{
                    "category": [{
                        "_name": "foo",
                        "letters": "abc"
                    },
                    {
                        "_name": "foo",
                        "letters": "def"
                    },
                    {
                        "_name": "foo",
                        "letters": "ghi"
                    },
                    {
                        "_name": "foo",
                        "letters": "jkl"
                    }]
                }]
            }]
        }]
    }]
}

到目前为止,这是我的代码:

JObject o = JObject.Parse(File.ReadAllText(@"D:/Client/data.json"));

var results = from x in o["doc"].Children()
              where x["_name"].Value<string>() == "foo"
              select x;

我收到此错误:

"Value cannot be null.\r\nParameter name: source"

如何获得一个列表,其中每个元素都是包含“ _name”和“ letters”的数组?

乔恩·斯基特

三个问题:

  • 您不想要的直系子孙doc,而是您的后代。
  • 您正在使用x["_name"].Value<string>()即使没有_name财产
  • x["_name"].Value<string>()甚至在非对象子项上使用

这些都很容易解决:

var doc = (JContainer) o["doc"];
var results = doc.Descendants()
                 .OfType<JObject>()
                 .Where(x => x["_name"] != null &&
                             x["_name"].Value<string>() == "foo");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#JSON和解析

来自分类Dev

C#JSon解析器错误

来自分类Dev

C#JSON DeserializeObject,不断获取nullreference

来自分类Dev

具有变化的类的C#json

来自分类Dev

C#Json使用Newtonsoft.Json解析

来自分类Dev

C#Json从源于URL的列表中获取价值

来自分类Dev

具有空json数组的C#json对象

来自分类Dev

具有自定义列表的c#JSON SerializeObject

来自分类Dev

具有自定义列表的c#JSON SerializeObject

来自分类Dev

c#json重新排列具有相同的值

来自分类Dev

子类的C#JSON动态合同解析器

来自分类Dev

子类的C#JSON动态合同解析器

来自分类Dev

c#JSON序列化使用值代替属性名称

来自分类Dev

C#JSON如何使用未知的父名称读取特定值

来自分类Dev

如何解决在javascript中用quoute进行C#Json序列化解析?

来自分类Dev

C#JSON错误(将值“用户名”转换为类型时出错)

来自分类Dev

C#JSON错误,将值3072转换为类型“ WeatherUnderground.RootObject”

来自分类Dev

C#JSON .NET与另一个对象中的JsonObjects反序列化

来自分类Dev

C#JSON反序列化为没有名称的数组

来自分类Dev

没有属性的C#json序列化和反序列化

来自分类Dev

Tropo C#JSON示例?

来自分类Dev

C#JSON Newtonsoft转换

来自分类Dev

使用C#中的Selenium获取具有特定类的所有元素的属性值的列表

来自分类Dev

C#Json反序列化异常(“将值“ id”转换为类型'Eng_Tab.JsonData'时出错。路径'[0]',第1行,位置5”。)

来自分类Dev

C#JSON中的未包装属性

来自分类Dev

来自网址和回文的C#JSON

来自分类Dev

在C#json中读取子数据

来自分类Dev

无异常的Unity C#JSON库

来自分类Dev

C#JSON格式太复杂

Related 相关文章

热门标签

归档