Javascript 解析数组内的JSON数组并使用pdfmake绑定

Javascript 解析数组内的JSON数组并使用pdfmake绑定,javascript,json,angular,typescript,Javascript,Json,Angular,Typescript,我是Angular的新手,我正在尝试解析数组中的一个数组,我无法解析这个数组,因为使用我的代码它在JSON中的位置0处出现了一个意外的错误标记u,我在互联网上搜索了很多示例,但non在我的情况下起作用,我不明白我的代码有什么问题,非常感谢你的帮助 资料 employees.component.ts table: { headerRows: 1, widths: [ '*', '*', '*', '*', '*', '*' ], alignme

我是Angular的新手,我正在尝试解析数组中的一个数组,我无法解析这个数组,因为使用我的代码它在JSON中的位置0处出现了一个意外的错误标记u,我在互联网上搜索了很多示例,但non在我的情况下起作用,我不明白我的代码有什么问题,非常感谢你的帮助

资料

employees.component.ts

   table: {
        headerRows: 1,
        widths: [ '*', '*', '*', '*', '*', '*' ],
        alignment: 'center',
        body: [[
        {text: 'Name', style: 'header'}, 
        {text: 'Position', style: 'header'},
        {text: 'Department', style: 'header'},
        {text: 'Hiring Date', style: 'header'}, 
        {text: 'First Contracting Salary', style: 'header'},
        {text: 'Status', style: 'header'},
      ]]
            .concat(this.jsonObj.map((element, i) => 
            [
             element['firstName_FL'],
             element['position']['name_FL'],
             element['department']['name_FL'],
             element['hiringDate'].slice(0, 10),
             element['firstContractingSalary'],
             element.employeeJobStatuses.map((x, j) => ({ ...x,
              Status: x
            }))
            ]
            ))

      }

除了这一行JSON.parse(元素['employeeJobStatuses']['status'])之外,我需要的结果都出来了。

将您的输入解析为一个有效的JS对象,然后对它执行任何需要执行的操作

//您的输入
const jsonString=JSON.stringify({
“数据”:{
“雇员”:[{
“id”:“f790cb86-4d41-401c-2a45-08d745b83164”,
“firstName_FL”:“员工姓名”,
“员工工作状态”:[{
“id”:“bd58a1a3-6dd7-4cd5-6c79-08d76cf25ba3”,
“状态”:“状态\活动”
}]
}]
}
})
//将输入解析为js有效对象
const jsonObj=JSON.parse(jsonString);
//你需要做什么
const newObj=jsonObj.data.employee.map((元素,i)=>({
…元素,
employeeJobStatuses:element.employeeJobStatuses.map((x,j)=>({…x,
状态:x.status
}))
}))

console.log(newObj)元素['employeeJobStatuses']['status'])这应该类似于元素['employeeJobStatuses'][i].status])@EugeneSunic我试过了,但出现了一个错误,无法在不正确的(输入json)中读取undefinedyour json的属性'status',您缺少数组结尾和逗号,我已经编辑了我的问题并更正了它,但它们仍然存在……我尝试过这种方法,但却发现了同样的错误。你能不能从这个例子开始,因为你无法从中找出错误。我甚至不知道为什么你需要解析两次`JSON.parse(element['employeeJobStatuses']['status'])如果你已经有了一个有效的js对象(数据),好吧,既然我不需要传递它两次,为什么会出现这个错误,尽管我相信是因为我们说的第一件事,
element['employeeJobStatuses']['status']
,你需要像我一样,通过你的元素['employeeJobStatuses']进行映射,因为它是一个数组,你不能仅仅从中提取t状态。现在,当我将它放入数组元素时,它工作得很好。employeeJobStatuses.map((x,j)=>[]非常感谢你的帮助,如果没有你,我永远不会完成它
   table: {
        headerRows: 1,
        widths: [ '*', '*', '*', '*', '*', '*' ],
        alignment: 'center',
        body: [[
        {text: 'Name', style: 'header'}, 
        {text: 'Position', style: 'header'},
        {text: 'Department', style: 'header'},
        {text: 'Hiring Date', style: 'header'}, 
        {text: 'First Contracting Salary', style: 'header'},
        {text: 'Status', style: 'header'},
      ]]
            .concat(this.jsonObj.map((element, i) => 
            [
             element['firstName_FL'],
             element['position']['name_FL'],
             element['department']['name_FL'],
             element['hiringDate'].slice(0, 10),
             element['firstContractingSalary'],
             element.employeeJobStatuses.map((x, j) => ({ ...x,
              Status: x
            }))
            ]
            ))

      }