JSONPath或其他类似XPath的JSON/Javascript实用程序; 或Jquery JSON

jwl*_*jwl 14 javascript jquery json jsonpath

我一直在关注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...
        }
    ]
Run Code Online (Sandbox Code Playgroud)

用Jquery选择器之类的东西来获取一些更深层次的对象不是很好吗?

var banana=SomeUtility("Characters holding #Banana").get(0);
var leftHands=SomeUtility("Characters appendage[type=hand][side=left]").get();
Run Code Online (Sandbox Code Playgroud)

(这可能有资格获得世界上最古老的代码示例,但是,嘿,我的孩子们只是看了这个.我不能使用真实的例子,因为NDA ......)

...而且,为了使它更有趣,如果我要创造这样的东西,有人会使用它吗?

ora*_*rad 6

查看JSON Select - 类似JSON的CSS选择器.


cof*_*iem 4

绝对会是一个有用的实用程序。

我的观点是,解决这个问题的最佳方法是尽可能与 css 选择器保持相似,正如您所指出的。我建议深入了解jquery选择器的实现。

我会建议类似的东西

var banana = object.function(jsonObect, "holding #Banana");
var leftHands = object.function(jsonObject, "appendage[type=hand][side=left]");
Run Code Online (Sandbox Code Playgroud)

而不是你的使用示例。

我不确定即将推出的本机 json 支持将如何影响这一点......