我正在使用dojox.json.query
来获取JSON结构中的节点,如上所示:
{"data" : [ {
"response" : [ {
"key" : "value",
"key1" : "value1",
"key2" : "value2",
"key3" : "value3",
"key4" : "",
"details" : [ {
"key" : "",
"key1" : "value11",
"key2" : "",
"key3" : "value33",
"key4" : "",
"details" : [ {
"key" : "KEY",
"key1" : "value111",
"key2" : "value222",
"key3" : "value333",
"key4" : "",
"details" : [ {
"key" : "",
"key1" : "value1111",
"key2" : "",
"key3" : "getThisOne",
"key4" : "",
"details" : [ {
"key" : "",
"key1" : "value11111",
"key2" : "",
"key3" : "value33333",
"key4" : "TARGET_1",
"details" : []
}, {
"key" : "",
"key1" : "value111111",
"key2" : "",
"key3" : "value333333",
"key4" : "TARGET2_1",
"details" : []
} ]
} ]
} ]
} ]
} ]
} ]
}
var evaluator = dojox.json.query("..[?key='value']");
var jsonQuery = evaluator(data.response);
我想知道是否可以获得包含父值getThisOne
的对象,一旦我收到了他的一个儿子,如Target_1
或Target_2
。有没有人知道如果没有关于它的文档,我怎么能得到它。
答案 0 :(得分:0)
好吧,看起来这是JSONPath / JSONQuery中XPath缺少的功能之一。换句话说:这是您实际应该使用XML的那一次。数据越分层,XML的好处就越重要。
也就是说,您可以尝试使用此选择器:"..[?key3='getThisOne']/[?key='value']"
仅获取具有key3
为getThisOne
的父对象的对象。
答案 1 :(得分:0)
根据商店关系模型格式化你的json会不会更容易?
喜欢使用_reference:#idOfTheItem 并将所有项目放在json中的0级。那样你可以使用_reference构建层次结构,并使用dojo存储到例如getParent(),或者对商店进行查询?