javascript - Parsar JSON-array inuti array och binder med pdfmake
Jag är ny på Angular, jag försöker parsa en array inuti min array, jag kan inte parsa denna array eftersom det med min kod kommer upp ett fel: Unexpected token u in JSON at position 0. Jag har sökt över hela internet och det finns många exempel, men ingen fungerar i mitt fall. Jag förstår inte vad som är fel med min kod, din hjälp skulle uppskattas mycket.
data
{
"employees":[
{
"id":"f790cb86-4d41-401c-2a45-08d745b83164",
"firstName_FL":"Employee Name",
"employeeJobStatuses":[
{
"id":"bd58a1a3-6dd7-4cd5-6c79-08d76cf25ba3",
"status":"STATUS_ACTIVE"
}
]
}
]
}
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
}))
]
))
}
Allt ger det resultat jag behöver utom den här raden JSON.parse(element['employeeJobStatuses']['status'])
Svar #1
Analysera din input till ett giltigt JS-objekt, och gör sedan med det vad som behöver göras.
// your input
const jsonString = JSON.stringify({
"data": {
"employee": [{
"id": "f790cb86-4d41-401c-2a45-08d745b83164",
"firstName_FL": "Employee Name",
"employeeJobStatuses": [{
"id": "bd58a1a3-6dd7-4cd5-6c79-08d76cf25ba3",
"status": "STATUS_ACTIVE"
}]
}]
}
})
// parse your input to js valid object
const jsonObj = JSON.parse(jsonString);
// do wathever you need to do
const newObj = jsonObj.data.employee.map((element, i) => ({
...element,
employeeJobStatuses: element.employeeJobStatuses.map((x, j) => ({ ...x,
status: x.status
}))
}))
console.log(newObj);