Tengo el siguiente código que está en formato JSX. r.invoice_details me da una salida que se ve así
{"rate":1522,"quantity":1,"discount":null,"itemName":"Gold Members club (offline)","amount":1522,"noEdit":true}
Está en forma de cuerda. Todo lo que quiero es itemName dentro de la cadena que se mostrará. ¿Cuál es la mejor manera de escribir como una función en línea?
{ id: "itemName", label: "Item", customCell: (r, i) => { return <td key={`${i}-itemName`}> {r.invoice_details} </td>; } },Puedes usar JSON.parse()
const json = '{"rate":1522,"quantity":1,"discount":null,"itemName":"Gold Members club (offline)","amount":1522,"noEdit":true}'; const obj = JSON.parse(json); console.log(obj.itemName);Entonces su código final se verá así,
{ id: "itemName", label: "Item", customCell: (r, i) => { return <td key={`${i}-itemName`}> {JSON.parse(r.invoice_details).itemName} </td>; } },Pruebe Object.values después de la extraccióng JSON.parse()
let json = JSON.parse(r.invoice_details) let inv = Object.keys(json) let inv2 = Object.values(json) let Id = inv2[inv1.indexOf("itemName")]Puede usar la función JSON.parse() :
{JSON.parse(r.invoice_details).itemName}
Entonces su código final se verá así:
{ id: "itemName", label: "Item", customCell: (r, i) => { return <td key={`${i}-itemName`}> {JSON.parse(r.invoice_details).itemName} </td>; } },