将json拆分成单独的对象
我使用node.js从JSON中的外部API接收数百个数据对象,如下所示:
[ { "ID": "6548532", "Status": "active", "Updated": "2014-11-24T07:32:04-07:00", "created": "2014-09-15T19:42:37-07:00", "URL": "www.example.com", "Categories": [ "cat-a", "cat-b" ], "Price": "10.00" }, { "ID": "8558455", "Status": "inactive", "Updated": "2014-10-24T07:32:04-07:00", "created": "2014-09-15T19:42:37-07:00", "URL": "www.example.com", "Categories": [ "cat-c", "cat-r" ], "Price": "20.00" } .... ]
我想分开的对象,以便我只能写有"Status": "active"
到我的数据库。 我知道我可以在使用JSON.parse
之前使用string操作来做到这一点,但我想知道是否有更好的方法来将JSON文件拆分成它包含的对象,并将它们留在一个数组中,然后我可以处理。
将JSONparsing为Javascript对象后,可以使用filter函数删除"Status"
不等于"active"
的元素:
var responseArray = JSON.parse(responseData), filteredArray = responseArray.filter( function (obj) { return obj.Status == "active"; }); // Use filteredArray
除非你想编写自己完整的JSONparsing逻辑,否则你不应该使用string操作,或者用JSON.parse
parsing它。
只是parsing它,然后删除没有Status: "active"
:
var objects = JSON.parse(JSON_data); var filtered_objects = objects.filter(function(el) {return (el["Status"] == "active");});
你应该能够在由JSON.parse
返回的数组上使用Array.prototype.filter
:
var objects = JSON.parse(input); objects.filter(function (el) { return el.status === "active"; });