从json文件中获取更少/匹配的对象

时间:2014-08-02 07:26:58

标签: javascript json angularjs get

我的json文件如下所示:

[
    {
        "id" : "1",
        "type" : "hardware"
    },
    {
        "id" : "2",
        "type" : "software"
    }
]

现在我运行以下代码:

$http({
        method: 'get',
        url: '/tools.json'
    }).success(function(data, status, headers, config) {
        ///whatever
    })

我通过ng-repeat获取这两个对象进行重新存档,没关系。

现在,我想在我的应用中创建过滤器,比如仅显示“硬件”或“软件”,这是实现此目的的最佳方法,有没有办法从中获取硬件类型的对象JSON本身? (查询JSON并获取匹配的对象)我该怎么做?为了做到这一点,我应该在代码中更改什么,或者在获取整个JSON之后我应该使用Angular过滤器来呈现硬件类型。

我对Angular没有多少经验,请告诉我是否有其他方法可以实现我想要的目标。

提前致谢。

3 个答案:

答案 0 :(得分:2)

完全是你的选择。

理想情况下,您的后端应该返回由查询过滤的JSON。

如果您想要即时响应,可以使用Angularjs的过滤器对您从服务器获取的相同数据进行过滤。这样做还可以进行全文搜索,这非常简洁。

答案 1 :(得分:0)

如果您只想过滤JSON数据,可以使用reduce方法,如下所示:

var hardware = data.reduce(function(result, current) {
    if(current.type === 'hardware') {
        result.push(current);
    }

    return result;
}, []);

提供小提琴here

答案 2 :(得分:0)

这种过滤的理想位置是在后端,给定类型。但出于某种原因,如果要在浏览器上执行此操作,可以使用简单的for循环来过滤类型为硬件的对象。更简洁的方法是使用下划线。在项目中包含下划线源文件,并执行_.filter函数来过滤所需的对象。您可以在此处详细了解过滤器功能:http://underscorejs.org/#filter