单行javascript从对象图中收集值?

时间:2010-04-30 21:36:10

标签: javascript json

给出以下对象图:

{
"children": [
    {
        "child": {
            "pets": [
                {
                    "pet": {
                        "name": "fido"
                    }
                },
                {
                    "pet": {
                        "name": "fluffy"
                    }
                }
            ]
        }
    },
    {
        "child": {
            "pets": [
                {
                    "pet": {
                        "name": "spike"
                    }
                }
            ]
        }
    }
]

}

收集我孙子的宠物名字会是一个很好的单行(或两行)吗?结果应该是[“fido”,“蓬松”,“尖峰”]

我不想为此编写自定义方法...我正在寻找类似于jQuery在选择dom节点时的工作方式,在这里你可以给它一个类似CSS的路径并将它们收集起来你。

我希望表达路径看起来像“儿童宠物宠物名字”

3 个答案:

答案 0 :(得分:2)

LINQ to JavaScript(JSLINQ)是用JavaScript实现的LINQ to Objects的实现。它是使用构建在JavaScript Array对象之上的一组扩展方法构建的。如果您使用的是Array,则可以使用LINQ to JavaScript。

LINQ to JavaScript是一个开源项目,你可以从这里下载:http://jslinq.codeplex.com/

希望这会有所帮助......

取值

答案 1 :(得分:1)

如果您不想使用库,这是我能想到的最简洁的编写方式。

var Ar=[];
p.children.map(function(a){a.child.pets.map(function(a){Ar.push(a.pet.name)})});

答案 2 :(得分:0)

我选择JSONPath library,就像XPath for JSON一样。 LINQ似乎对我的需求有点重量级,导致语法更加冗长,尽管它看起来更强大。也许如果我的需求发生变化,我会升级。