我要使用SelectToken在以下JSON上获取特定值-
{
"Result": {
"Id": "knownvalue0",
"Name": "Level0",
"Children": [
{
"Name": "Level1",
"Id": "knownvalue1",
"Children": [
{
"Name": "Level2",
"Id": "knownvalue2",
"Children": [
{
"Id": "knownvalue3",
"Name": "Level3",
"Children": []
}
]
}
]
}
]
}
}
结构是递归的,我不知道运行时的深度。但是,我确实知道ID,并且想验证名称是否正确。因此,我使用像这样的JsonPath-Result..[?(@Id=='knownvalue')].Name in jtoken.parse(response).selecttoken(jsonpath)
方法。当我在knownvalue1或knownvalue2上使用此jsonpath时发生问题,即-
Result..[?(@Id=='knownvalue1')].Name
我遇到异常-路径返回多个令牌。为什么即使只有1个ID ='knownvalue1'的selecttoken也返回多个令牌? Level2和Level3节点是子节点,不应返回它们。