【发布时间】:2009-05-13 16:39:16
【问题描述】:
我一直在研究 JSONPath,虽然它看起来做得很好,但我想知道是否有人使用过它并可以评论它的可用性,或者可以推荐替代方案?如果有一个用于 JQuery 的插件来做这样的事情,那将是 真正 光滑的。我一直在搜索插件并空手而归。无论如何,在我花时间了解 JSONPath(它有一些我不喜欢的方面)之前,或者在我重新发明轮子之前,我想我会看看是否有人对此有看法......
为了让你明白我的意思,想象一下这个 Javascript 对象:
var Characters=[
{
id: "CuriousGeorge",
species:"Monkey",
mood: "curious",
appendage: [
{
type: "hand",
side: "left",
holding: [
{ id: "Banana" }
]
},
{
type: "hand",
side: "right",
holding: []
},
{
type: "foot",
side: "left",
holding: []
},
{
type: "foot",
side: "right",
holding: [
{ id: "YellowHat" },
{ id: "Keys" }
]
}
]
},
{
id: "ManInYellowHat",
species: "Human",
mood: "angry",
//...ok, you get it...
}
]
通过 Jquery 选择器之类的东西来访问一些更深层次的对象不是很好吗?
var banana=SomeUtility("Characters holding #Banana").get(0);
var leftHands=SomeUtility("Characters appendage[type=hand][side=left]").get();
(这可能有资格成为世界上最老套的代码示例,但是,嘿,我的孩子们刚刚看了这个。而且由于保密协议,我不能使用真实的示例......)
...而且,为了更有趣,如果我要创造这样的东西,会有人使用它吗?
【问题讨论】:
-
添加一个 [json] 标签似乎很合适。
-
有趣的问题。 JSON 的 XPath 等效项将是一件好事,尽管我查看的实现(JSONPath 和 dojox.json.query)似乎出于某种我不明白的原因使用了它们自己的语法。
-
dojo jsonquery 很有趣,但是是的,语法很奇怪,并且试图完成比我想要的更多的事情(因此把事情弄得一团糟)。不过,我应该更仔细地看一下。我总是避开道场,仅仅是因为它看起来过于复杂/复杂——学做简单的事情太多了。这只是我个人的印象
标签: javascript jquery json jsonpath