解析字符串对象数组

时间:2019-04-05 07:16:14

标签: javascript arrays json angularjs object

基于下面的JSON数据格式,我们如何解析它在我只想获取特定密钥的位置,例如,我只想获取名称和优先级

[  
   "{'id': 12, 'category_name': 'BIR', 'priority': 1, 'category': 12, 'name': 'BIR FORMS'}",
   "{'id': 14, 'category_name': 'Contribution', 'priority': 0, 'category': 13, 'name': 'Pag-Ibig'}",
   "{'id': 13, 'category_name': 'Contribution', 'priority': 0, 'category': 13, 'name': 'SSS'}"
]

3 个答案:

答案 0 :(得分:1)

如果数据中没有其他引号,则可以用双引号'替换单引号",以获得符合JSON的字符串。

然后解析字符串,获取所需的属性并映射新对象。

var strings = [  
        "{'id': 12, 'category_name': 'BIR', 'priority': 1, 'category': 12, 'name': 'BIR FORMS'}",
        "{'id': 14, 'category_name': 'Contribution', 'priority': 0, 'category': 13, 'name': 'Pag-Ibig'}",
        "{'id': 13, 'category_name': 'Contribution', 'priority': 0, 'category': 13, 'name': 'SSS'}"
    ],
    data = strings.map(s => JSON.parse(s.replace(/'/g, '"'))),
    selected = data.map(({ name, priority }) => ({ name, priority }));

console.log(selected);
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:-1)

让我们假设您具有有效的json数据。您可以执行以下示例:

%

答案 2 :(得分:-2)

尝试将数据映射为波纹管

 let data=[
"{'id': 12, 'category_name': 'BIR', 'priority': 1, 'category': 12, 'name': 
'BIR FORMS'}", "{'id': 14, 'category_name': 'Contribution', 'priority': 0, 
'category': 13, 'name': 'Pag-Ibig'}", "{'id': 13, 'category_name': 
'Contribution', 'priority': 0, 'category': 13, 'name': 'SSS'}" ];
let mapping= data.map((tmp)=>{
   tmp=JSON.parse(tmp)
   return {name:tmp.name,priority:tmp.priority}
})