首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析[物体]角6

解析[物体]角6
EN

Stack Overflow用户
提问于 2018-09-17 12:42:52
回答 5查看 8.9K关注 0票数 3

我想解析一个字符串,并将projectNamepoNumber保存到两个变量中。到目前为止,我已经使用了JSON.parse()

代码语言:javascript
运行
复制
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看起来像:

代码语言:javascript
运行
复制
"project": [
     {
        "projectName": "proj1",
        "poNumber": "1"
     }
]

但我知道这个错误

错误SyntaxError:位置1处JSON中的意外令牌o

我哪里错了?谢谢您抽时间见我!

编辑:我理解为什么会出现这个错误,因为我的数据已经是一个对象了,没有必要使用JSON.parse(),但是我的代码仍然无法工作,因为我得到了错误:

core.js:1671 ERROR TypeError:无法读取未定义的属性“forEach”

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-09-17 12:48:43

Json字符串是无效的,它不是由JSON.stringify()串成的,而是由toString方法串成的,否则嵌套的对象就会被正确地串成字符串。

票数 3
EN

Stack Overflow用户

发布于 2018-09-18 11:36:11

问题是我没有解析正确的东西。以下是正确的片段:

代码语言:javascript
运行
复制
let p = JSON.parse(data.project);

  this.employees.push({
  projectName: p.projectName,
  poNumber: p.poNumber
})

谢谢大家的帮助!你的回答都是对的。

票数 2
EN

Stack Overflow用户

发布于 2018-09-17 12:53:43

就像这样:

代码语言:javascript
运行
复制
JSON.parse(data).array.forEach(element => {
  this.employees.push({
    projectName: element.project.projectName,
    poNumber: element.project.poNumber
  })
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52368050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档