如何使用JSON.NET从JSON中获取“ myThings”数组,如下所示?
范例1:
{
"z": {
"a": 1,
"b": 2
},
"something": {
"y": [1, 2],
"somethingElse": {
"1234": {
"foo": "bar",
"myThings": [{
"name": "bob",
"age": 3
}, {
"name": "bob",
"age": 3
}]
}
}
}
}
范例2:
{
"z": {
"a": 1,
"b": 2
},
"something": {
"y": [1, 2],
"somethingElse": {
"7890": {
"foo": "bar"
}
}
}
}
我遇到的一些困难:
可以帮助您的另一个考虑因素:我确实有一个静态类来表示myThings数组中的内容,所以我的理想返回值是 IEnumerable<MyThing>
我的第一个尝试是使用,JsonConvert.DeserializeObject<dynamic>(json)
但是我不知道如何处理上面提到的问题。最后,我不需要整个JSON字符串的全部数据,只需要一个名为“
myThings”的数组即可。
您可以JToken.SelectTokens()
用于此目的。它允许使用通配符查询JSON和使用JSONPath语法进行递归搜索:
var root = JToken.Parse(json);
var myThings = root.SelectTokens("..myThings[*]").ToList();
这".."
是 递归下降 运算符,"myThings[*]"
表示返回属性的所有数组项"myThings"
。
原型小提琴。
如果的数组条目"myThings[*]"
对应于某个POCO
MyThing
,则可以JToken.ToObject<T>()
在查询后使用反序列化它们:
var myThings = root.SelectTokens("..myThings[*]").Select(t => t.ToObject<MyThing>()).ToList();
问题内容: 我试图找到一种从的有效载荷中解析嵌套属性的干净方法。 这是有效负载的粗略概括: 我的目标是拥有具有和字段的对象数组。 有人知道干净地解析此内容的好方法吗? 现在,我正在尝试创建一个类,并在其中创建一个用于数据,值,用户等的静态内部类。 我用来呼叫端点。 问题答案: 您需要使用JsonPath库,该库仅允许您选择必填字段,然后可以将原始数据转换为类。解决方案示例如下所示: 上面的代码打印
我正在从Spark读取一个dynamodb表,这个表在一个字段中有一个JSON字符串,在其他字段中有字符串。我能够读取JSON字段,但不能读取嵌套的JSON字段。这不是使用dataframes的查询Json列的副本。这个问题解释了如何从JSON字符串中提取列,但没有解释嵌套的JSON列。 users.show(1) 示例数据集 我需要从col1(JSON结构)和ID字段中提取几个字段。我能够理解如
问题内容: 我正在尝试从深度嵌套的JSON字符串创建单个Pandas DataFrame对象。 JSON模式是: 期望的结果 我需要将其展平以产生一张桌子: 第一列是值,其余列是键的值并存储在列表中。 到目前为止,我已经 是一个列表,其中长度等于个人数量,即。df对象只是返回 如何遍历该列表以获取dict值并创建N个不同的列?我应该尝试为该列表创建一个DataFrame ,重塑它的形状,然后用角色
问题内容: 解决方案 :这是我的错误。 正确的方法是 response.body()。string() 而不是 response.body.toString() 我正在使用Jetty servlet,URL是,每次请求此URL都会返回 当在浏览器中键入url时,它会显示出来,不幸的是,当我使用时,它会显示除json字符串以外的其他内存地址。 Okhttp代码Im使用: 有人可以帮忙吗? 问题答案:
位置值是从我们的服务器获取的,以字符串格式,现在我定义了新的位置,之后我想获取经度和纬度,但它是0.0。代码是这样的。
问题内容: 我正在用Go编写一个websocket客户端。我正在从服务器接收以下JSON: 我正在尝试访问该参数,但无法掌握如何深入了解接口类型: 显然是错误的,因为这种表示法是不正确的: 我只是找不到一种方法来挖掘地图以获取深层嵌套的键和值。 一旦可以克服动态值,我便想声明这些消息。我将如何编写类型结构来表示这种复杂的数据结构? 问题答案: 您解码成的部分将与该字段的类型匹配。因此,在这种情况下