将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.parseparsing它。

只是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"; });