我想将JSON字符串转换为包含JSON值的一组数组。在json.stringify(jsonmybe)
之后,并警告它显示[{"role":"noi_user"},{"role":"bert_user"}]
(我将其视为JSON)。我想获取noi_user
和bert_user
并将它们设置为javascript数组。类似于['noi_user','bert_user']
,每个值都带有引号。
我做了var stringy = json.parse()
,警报显示了[object Object]
。并进一步添加此行
for (var i = 0; i < stringy.length; i++) {
arr.push(stringy[i]['role']);}
和我得到的arr
是处于警报状态时的逗号值,但是逗号缺失,因为我在文本字段中显示了它们,并且它变成了一个长字符串,如noi_userbert_user
我真正想要的是从[{"role":"noi_user"},{"role":"bert_user"}]
到['noi_user','bert_user']
答案 0 :(得分:4)
使用JSON.parse,然后缩小以获取所需的内容,
var s = `[{"role":"noi_user"},{"role":"bert_user"}]`
var arr = []
try {
arr = JSON.parse(s).reduce((acc, val)=>[...acc, val.role], [])
} catch (e){
console.log("Invalid json")
}
console.log(arr)
答案 1 :(得分:1)
这是您想要的东西吗?您可以在数组上进行映射,只需提取每个数据的role
属性即可。
const jsonString = ...
const data = JSON.parse(jsonString).map(data => data.role);
console.log(JSON.stringify(data, null, 2));
JSON使用双引号分隔字符串和字段名称。
答案 2 :(得分:0)
所以您有一个
之类的JSON字符串。'[{“ role”:“ noi_user”},{“ role”:“ bert_user”}]'
您想要将其转换为对象,然后提取每个元素的“角色”字段的值,并将它们全部放入数组中。
您的示例json字符串在“角色”字段中包含一组用户对象。以下代码获取此列表,循环遍历每个用户对象,并将每个对象的角色放入单独的数组roleList中。
var jsonStr = '[{"role":"noi_user"},{"role":"bert_user"}]';
var userObjList = JSON.parse(jsonStr);
var roleList = [];
userObjList.forEach(userObj => {
roleList.push(userObj.role);
});
console.log(roleList);
答案 3 :(得分:0)
您可以创建一个自定义函数,以在PHP中生成某种array_values,但采用缩进和二维级别,如下所示:
function array_values_indented (input) {
var tmpArr = []
for (key in input) {
tmpArr[tmpArr.length] = input[key]['role']
}
return tmpArr
}
var object = JSON.parse('[{"role":"noi_user"},{"role":"bert_user"}]');
var result = array_values_indented(object);
console.log(result);