¿Cómo puedo concatenar este json para obtenerlo?
complements = ["XYZ 3, CDE TR, AAA 5", "", "NDP 3, DDD FR"] ?
Cada dirección puede contener un conjunto de complementos que deben estar concatenados y separados por una coma.
PD: estoy usando javascript. P.s2: Los complementos pueden ser nulos como en el segundo grupo en JSON.
[ { "postalcode": "1234", "street": "ABC", "number": "1", "complement": [ { "type": "B", "name": "XYZ", "description": "3" }, { "type": "C", "name": "CDE", "description": "TR" }, { "type": "D", "name": "AAA", "description": "5" } ] }, { "postalcode": "444", "street": "No complements", "number": "5" }, { "postalcode": "2222", "street": "BBB", "number": "2", "complement": [ { "type": "E", "name": "NDP", "description": "3" }, { "type": "F", "name": "DDD", "description": "FR" } ] } ];Mi código obtengo this.complementsList.forEach no es una función .
getComplement(addressesResponse){ this.complementsList = JSON.parse(addressesResponse); this.complementsList.forEach((item) => { Object.defineProperty(item, 'complements', { get: function() { return this.complement.map((c) => `${c.name} ${c.description}`).join(', '); } }) });Fuente: https://salesforce.stackexchange.com/questions/367713/how-to-render-a-json-in-the-same-line-lwc
Al tener un objeto javascript, puede revisar las claves del objeto y combinar algunas de ellas en cadenas
Se verá algo como esto:
const jsonObject = [{...}, {...}, ...] const complements = []; jsonObject.forEach((item) => { let complement = item['complement'].reduce((result, currObj) => result += (currObj.name+' '+currObj.description), ""); complements.push(complement); });Este es solo un ejemplo. Hay muchas maneras de hacerlo.
como lo solucione:
arr.map((x)=>x.complement != null? (x.complement.map((y)=>y.name+' '+y.description)+"") :'');