我有一个json数组,我想将它解析为map
对象。键应该是状态,值应该是具有相同状态的数组对象。样本json如下:
{
"totalRec": 10,
"content": [
{
"name": "Pradeep",
"age": "24",
"state": "KA"
},
{
"name": "Praveen",
"age": "30",
"state": "KA"
},
{
"name": "Navnish",
"age": "32",
"state": "GOA"
},
{
"name": "Vinod",
"age": "32",
"state": "MH"
},
{
"name": "Vikas",
"age": "32",
"state": "MH"
},
{
"name": "Harry",
"age": "44",
"state": "MP"
},
{
"name": "Linda",
"age": "22",
"state": "GOA"
},
{
"name": "June",
"age": "18",
"state": "KA"
},
{
"name": "Sachin",
"age": "32",
"state": "GOA"
},
{
"name": "Arjun",
"age": "30",
"state": "UP"
}
]
}
我尝试使用Underscore.js
并使用以下代码:
var some_map = _.object(_.map(data.content, function(item) {
return [item.state, item]
}));
但是上面的代码并没有给我一个列表对象作为特定状态的值。我希望该值将包含状态的所有对象保存为键。
能告诉我出错的地方吗?
答案 0 :(得分:3)
看起来你正在寻找_.groupBy()
。
简单地
var byState = _.groupBy(data.content, "state");
应该为您提供表格
的对象{"GOA": [{"name": "Sachin", ...}, ...}, "UP": [...], ...}