将此json字符串操作到此javascript对象中

时间:2016-10-14 08:22:55

标签: javascript json node.js javascript-objects

我有这个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。我不知道如何开始。作为起点的一些提示会有所帮助。

4 个答案:

答案 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);