解析 [object 对象] Angular 6
parse [object Object] Angular 6
我想解析一个字符串并将 projectName
和 poNumber
保存到 2 个变量中。这就是我现在所拥有的,使用 JSON.parse()
employees = []
JSON.parse(data).array.forEach(element => {
this.employees.push({
projectName: element.projectName,
poNumber: element.poNumber
})
});
console.log(employees['projectName'])
console.log(employees['poNumber'])
其中 data
具有以下格式:
{"id":1,"name": "john doe", "project":"[object Object]"}
和project
看起来像:
"project": [
{
"projectName": "proj1",
"poNumber": "1"
}
]
但是我得到这个错误
ERROR SyntaxError: Unexpected token o in JSON at position 1
我哪里弄错了?感谢您的宝贵时间!
编辑:我明白为什么我会收到这个错误,因为我的数据已经是一个对象,不需要使用 JSON.parse()
,但我的代码仍然无法正常工作,因为我收到错误:
core.js:1671 ERROR TypeError: Cannot read property 'forEach' of
undefined
您的 Json 字符串无效,未被 JSON.stringify() 字符串化,而是被 toString 方法字符串化,否则嵌套对象被正确字符串化。
这样试试:
JSON.parse(data).array.forEach(element => {
this.employees.push({
projectName: element.project.projectName,
poNumber: element.project.poNumber
})
})
JSON.parse(data).array.forEach(element => {
this.employees.push({
projectName: element.project.projectName,
poNumber: element.project.poNumber
})
});
我在 JSON 格式中遇到了同样的错误,但在在线 JSON 验证器上对其进行验证后,它看起来很完美。在此基础上,我创建了以下示例,其中显示了两种不同的方法来获取 "employees" 数组中的数据。
希望对您有所帮助。
let data = {
"id":1,"name":"john doe",
"project":[
{
"projectName": "proj1",
"poNumber": "1"
},
{
"projectName": "proj2",
"poNumber": "2"
}
]
};
let employees = [];
Object.keys(data).map(key => {
if(key === 'project') {
// Method 1
// ===========================
data[key].map(obj => {
employees.push(obj);
});
// Method 2 : Shorter method
// ===========================
employees.push(...data[key]);
}
});
console.log('Employees :', employees);
谢谢,
吉涅什·拉瓦尔
问题是我没有解析正确的东西。这是正确的片段:
let p = JSON.parse(data.project);
this.employees.push({
projectName: p.projectName,
poNumber: p.poNumber
})
谢谢大家的帮助!你的每一个答案都是正确的。
我想解析一个字符串并将 projectName
和 poNumber
保存到 2 个变量中。这就是我现在所拥有的,使用 JSON.parse()
employees = []
JSON.parse(data).array.forEach(element => {
this.employees.push({
projectName: element.projectName,
poNumber: element.poNumber
})
});
console.log(employees['projectName'])
console.log(employees['poNumber'])
其中 data
具有以下格式:
{"id":1,"name": "john doe", "project":"[object Object]"}
和project
看起来像:
"project": [
{
"projectName": "proj1",
"poNumber": "1"
}
]
但是我得到这个错误
ERROR SyntaxError: Unexpected token o in JSON at position 1
我哪里弄错了?感谢您的宝贵时间!
编辑:我明白为什么我会收到这个错误,因为我的数据已经是一个对象,不需要使用 JSON.parse()
,但我的代码仍然无法正常工作,因为我收到错误:
core.js:1671 ERROR TypeError: Cannot read property 'forEach' of undefined
您的 Json 字符串无效,未被 JSON.stringify() 字符串化,而是被 toString 方法字符串化,否则嵌套对象被正确字符串化。
这样试试:
JSON.parse(data).array.forEach(element => {
this.employees.push({
projectName: element.project.projectName,
poNumber: element.project.poNumber
})
})
JSON.parse(data).array.forEach(element => {
this.employees.push({
projectName: element.project.projectName,
poNumber: element.project.poNumber
})
});
我在 JSON 格式中遇到了同样的错误,但在在线 JSON 验证器上对其进行验证后,它看起来很完美。在此基础上,我创建了以下示例,其中显示了两种不同的方法来获取 "employees" 数组中的数据。
希望对您有所帮助。
let data = {
"id":1,"name":"john doe",
"project":[
{
"projectName": "proj1",
"poNumber": "1"
},
{
"projectName": "proj2",
"poNumber": "2"
}
]
};
let employees = [];
Object.keys(data).map(key => {
if(key === 'project') {
// Method 1
// ===========================
data[key].map(obj => {
employees.push(obj);
});
// Method 2 : Shorter method
// ===========================
employees.push(...data[key]);
}
});
console.log('Employees :', employees);
谢谢, 吉涅什·拉瓦尔
问题是我没有解析正确的东西。这是正确的片段:
let p = JSON.parse(data.project);
this.employees.push({
projectName: p.projectName,
poNumber: p.poNumber
})
谢谢大家的帮助!你的每一个答案都是正确的。