无法通过 JsonPath 评估方法获得所需的属性
Can't get the desired properties via JsonPath evaluate method
我有一个 json 架构,它标记了需要处理的特殊属性,我想通过 JsonPath.Evaluate.
查询这些属性
这是说明问题的部分架构
{
"type": "object",
"properties": {
"period": {
"description": "The period in which the rule applies",
"type": "object",
"properties": {
"start": {
"type": "string",
"format": "date-time"
},
"end": {
"type": "string",
"format": "date-time"
}
},
"required": [
"start"
],
"x-updateIndicatorProperties": [
"start"
]
},
"productType": {
"type": "string"
},
"x-updateIndicatorProperties": [
"productType"
]
}
}
我想获取“x-updateIndicatorProperties”属性的 JsonPath,以便我可以查询要处理的实际属性。
对于此示例,预期结果为
[
"$['properties']['x-updateIndicatorProperties']",
"$['properties']['period']['x-updateIndicatorProperties']"
]
一段时间以来,我一直在尝试获取可查询这些属性的 JsonPath 表达式。
目前我只是迭代所有属性并手动过滤它们:
"$..*"
我也试过使用:
$..['x-updateIndicatorProperties']
这行得通。但是它 returns 有很多重复项。对于上面的例子,我得到了 5 个结果而不是预期的 2 个。可以在这里演示:https://json-everything.net/json-path
假设我不能影响架构本身,只能影响遍历它的代码,
任何人都可以帮助表达以获得预期的结果或任何其他方式来实现相同的结果吗?
堆栈是 JsonPath 0.2.0、.net 6 和 system.text.json。
这是在将使用递归下降 (..
) 的路径解析为 quoted-property-name 选择器 (['foo']
) 时库中的一个错误。所以对于 $..['foo']
.
形式的任何路径都会发生
我已经解决了这个问题并发布了 0.2.1 版本。
我有一个 json 架构,它标记了需要处理的特殊属性,我想通过 JsonPath.Evaluate.
查询这些属性这是说明问题的部分架构
{
"type": "object",
"properties": {
"period": {
"description": "The period in which the rule applies",
"type": "object",
"properties": {
"start": {
"type": "string",
"format": "date-time"
},
"end": {
"type": "string",
"format": "date-time"
}
},
"required": [
"start"
],
"x-updateIndicatorProperties": [
"start"
]
},
"productType": {
"type": "string"
},
"x-updateIndicatorProperties": [
"productType"
]
}
}
我想获取“x-updateIndicatorProperties”属性的 JsonPath,以便我可以查询要处理的实际属性。 对于此示例,预期结果为
[
"$['properties']['x-updateIndicatorProperties']",
"$['properties']['period']['x-updateIndicatorProperties']"
]
一段时间以来,我一直在尝试获取可查询这些属性的 JsonPath 表达式。 目前我只是迭代所有属性并手动过滤它们: "$..*"
我也试过使用: $..['x-updateIndicatorProperties']
这行得通。但是它 returns 有很多重复项。对于上面的例子,我得到了 5 个结果而不是预期的 2 个。可以在这里演示:https://json-everything.net/json-path
假设我不能影响架构本身,只能影响遍历它的代码, 任何人都可以帮助表达以获得预期的结果或任何其他方式来实现相同的结果吗?
堆栈是 JsonPath 0.2.0、.net 6 和 system.text.json。
这是在将使用递归下降 (..
) 的路径解析为 quoted-property-name 选择器 (['foo']
) 时库中的一个错误。所以对于 $..['foo']
.
我已经解决了这个问题并发布了 0.2.1 版本。