我有这个json字符串。
user_json_str =
"
[{
"id": 1,
"lg_name": "foo",
"lg_password": "bar"
},
{
"id": 2,
"lg_name": "user",
"lg_password": "passwd"
}
]
";
我想操纵它,使它成为一个看起来像这样的javascript对象;
user_obj =
{
foo: {
id: 1,
password: 'bar'
},
user: {
id: 2,
password: 'passwd'
}
};
我正在使用node.js v4.6。我不知道如何开始。作为起点的一些提示会有所帮助。
答案 0 :(得分:4)
您可以解析字符串并构建一个名称为键的对象。
var user_json_str = '[{"id":1,"lg_name":"foo","lg_password": "bar"},{"id":2,"lg_name": "user","lg_password":"passwd"}]',
array = JSON.parse(user_json_str),
object = {};
array.forEach(function (a) {
object[a.lg_name] = { id: a.id, password: a.lg_password };
});
console.log(object);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:2)
您可以使用JSON.parse
从字符串中获取对象数组。
然后,您可以使用array.reduce
循环对象并解析为必要的格式。
var user_json_str = '[{"id":1,"lg_name":"foo","lg_password": "bar"},{"id":2,"lg_name": "user","lg_password":"passwd"}]';
var object = JSON.parse(user_json_str).reduce(function (p,o) {
p[o.lg_name] = { id: o.id, password: o.lg_password };
return p;
}, {});
console.log(object);
答案 2 :(得分:1)
首先,解析数组,创建一个新对象,然后遍历数组并构建对象。
master
答案 3 :(得分:0)
尝试使用JSON.parse(user_json_str);