使用特定键从JArray中选择属性-VB.Net
我有一系列的屏幕和我想要解析的屏幕上的字段位置 我尝试使用SelectToken$.[?'Field-1'],但收到一个错误,多个令牌返回。我也尝试过不同口味的Linq,但没有任何合作 我对.Net和VB还比较陌生,有点挣扎。我甚至可能在这件事上做错了,有更好的方法来处理它。我在UIPath中工作,所以我只有一些psuedo代码要显示 下面是一些JSON示例。我完全控制着这个结构,所以如果有重组的建议,我很乐意接受他们使用特定键从JArray中选择属性-VB.Net,vb.net,json.net,Vb.net,Json.net,我有一系列的屏幕和我想要解析的屏幕上的字段位置 我尝试使用SelectToken$.[?'Field-1'],但收到一个错误,多个令牌返回。我也尝试过不同口味的Linq,但没有任何合作 我对.Net和VB还比较陌生,有点挣扎。我甚至可能在这件事上做错了,有更好的方法来处理它。我在UIPath中工作,所以我只有一些psuedo代码要显示 下面是一些JSON示例。我完全控制着这个结构,所以如果有重组的建议,我很乐意接受他们 [ { "Screen-1&quo
[
{
"Screen-1": {
"Field-1": {
"FieldInfo": {
"Row": 16,
"Start": 17,
"Length": 8,
"Validation": [],
"Format": {}
},
"TitleInfo": {
"Row": 16,
"Start": 2,
"Length": 14,
"ExpectedValue": "Field-1"
}
},
"Field-2": {
"FieldInfo": {
"Row": 17,
"Start": 17,
"Length": 8,
"Validation": [],
"Format": {}
},
"TitleInfo": {
"Row": 17,
"Start": 2,
"Length": 14,
"ExpectedValue": "Field-2"
}
}
}
},
{
"Screen-2": {
"Field-1": {
"FieldInfo": {
"Row": 2,
"Start": 7,
"Length": 4,
"Validation": [
"YES",
"NO"
],
"Format": {}
},
"TitleInfo": {
"Row": 2,
"Start": 2,
"Length": 4,
"ExpectedValue": "Field-1"
}
},
"Field-2": {
"FieldInfo": {
"Row": 2,
"Start": 16,
"Length": 3,
"Validation": [],
"Format": {}
},
"TitleInfo": {
"Row": 2,
"Start": 12,
"Length": 4,
"ExpectedValue": "Field-2"
}
}
}
}
]
我想能够做的是选择我想从哪个屏幕上拉,然后从那里索引到我需要的每个字段,并获取特定的值。这需要从Python、C和VB.Net中使用,但目前我主要关心的是VB.Net
目标:
我已经考虑过改变结构,这样我们就有了一个特定的屏幕名称字段,然后我想我可以为它获取selecttoken,但我真的看不到其中的价值。看起来像这样
{
"Screen": "Screen-1",
"Data": {
"Field-1": {
"FieldInfo": {
"Row": 16,
"Start": 17,
"Length": 8,
"Validation": [],
"Format": {}
},
"TitleInfo": {
"Row": 16,
"Start": 2,
"Length": 14,
"ExpectedValue": "Field-1"
}
},
"Field-2": {
"FieldInfo": {
"Row": 17,
"Start": 17,
"Length": 8,
"Validation": [],
"Format": {}
},
"TitleInfo": {
"Row": 17,
"Start": 2,
"Length": 14,
"ExpectedValue": "Field-2"
}
}
}
}
我能够使用SelectToken获得我所需要的东西。我只是错误地使用了JSONPath。下面的键是我感兴趣的键,所以我根据它进行过滤,最后的.*允许我只返回其中的内容 解决方案:数据。选择令牌$.[?@.+key+]*
{
"Screen": "Screen-1",
"Data": {
"Field-1": {
"FieldInfo": {
"Row": 16,
"Start": 17,
"Length": 8,
"Validation": [],
"Format": {}
},
"TitleInfo": {
"Row": 16,
"Start": 2,
"Length": 14,
"ExpectedValue": "Field-1"
}
},
"Field-2": {
"FieldInfo": {
"Row": 17,
"Start": 17,
"Length": 8,
"Validation": [],
"Format": {}
},
"TitleInfo": {
"Row": 17,
"Start": 2,
"Length": 14,
"ExpectedValue": "Field-2"
}
}
}
}