我正在尝试操纵此数组,并使用解析,推送和保存数据命令进行播放。但由于某种原因没有阅读。 有什么帮助吗? 我是新手,只是想练习。 应该是对象数组。
var employeeString = [
{ first_name: 'Josh', last_name:'Neil', nationality:'Indian'},
{ first_name: 'Brian', last_name:'Cok', nationality:'Canadian'},
{ first_name: 'Katja', last_name:'Fanta', nationality:'German'}
];
var jsonValues = JSON.stringify(employeeString);
current_values = JSON.parse(jsonValues);
var nationality = [];
//console.log (current_values);
for ( i = 0; i < current_values.length; i++) {
var currentItem = current_values[i]
var first_name = currentItem['first_name'];
var last_name = currentItem['last_name'];
//push value into array
nationality.push(currentItem['nationality']);
if (currentItem == 'first_name' || currentItem == 'last_name') {
return id[i+1];
}
}
console.log (first_name , last_name);
答案 0 :(得分:1)
您不需要解析已经为JSON的对象。
例如JSON.parse('[{x:10},{y:20}]');
将从字符串返回JSON对象。需要执行此步骤才能访问x和y的值,它们是字符串形式的,您可以在其周围看到''
。但是在您的情况下,您已经有了一个JSON对象,无需再次解析它。
此外,如果要打印first_name,请在console.log中不要在其周围添加''
。这是您的工作代码
var current_values = [
{ first_name: 'Josh', last_name: 'Neil', Nationality: 'Indian' },
{ first_name: 'Brian', last_name: 'Cok', Nationality: 'Canadian' },
{ first_name: 'Katja', last_name: 'Fanta', Nationality: 'German' }
];
// current_values = JSON.parse(employeeString);
// console.log(current_values);
for (i = 0; i < current_values.length; i++) {
var currentItem = current_values[i]
var first_name = currentItem['first_name'];
var last_name = currentItem['last_name'];
console.log(first_name, last_name);
}
答案 1 :(得分:0)
JSON.parse
方法接受一个 string ,但是您要为其提供一个对象数组。
var values = JSON.parse("[{'first_name': 'Josh', ...}, ...]");
会更好。
通常,解析会将字符串转换为对象。 http://www.willamette.edu/~fruehr/haskell/seuss.html
答案 2 :(得分:0)
您不需要JSON.parse(employeeString)
,因为它已经是对象。
JSON.parse
用于从字符串表示形式创建对象,例如将字符串'{"prop":42}'
解析为具有属性prop
且其值为42
的实际对象。由于代码中的employeeString
已经是一个对象,因此您无需再次JSON.parse
。
顺便说一句,你可能是这个意思
// notice that this is now an actual string
var employeeString = `[
{ first_name: 'Josh', last_name:'Neil', Nationality:'Indian'},
{ first_name: 'Brian', last_name:'Cok', Nationality:'Canadian'},
{ first_name: 'Katja', last_name:'Fanta', Nationality:'German'}
]`;
答案 3 :(得分:0)
employeeString
的数据类型是Array,但是JSON.parse()
应该解析JSON数据。因此,您可以在解析之前先将employeeString
更改为JSON数据。