Estoy tratando de llenar un PrimeReact Tree con datos de la base de datos sqlite3, pero no funciona.
Aquí está mi consulta SQL:
select 'prj:'||p.id as key,p.name as label,( select json_group_array(json_object('key',key,'label',label)) from( select 'tpr:'||tpr.id as key,tpr.name as label from tpr where tpr.prjid=p.id and tpr.active="true" order by tpr.id ) ) as children from prj p,usr_right r where p.id=r.prjid and p.active="true" and r.usrid=$1 order by p.idObtengo el siguiente código JSON:
[ { key: 'prj:1', label: 'Projekt 1', children: '[{"key":"tpr:1","label":"Teilprojekt 1"},{"key":"tpr:2","label":"Teilprojekt 2"}]' }, { key: 'prj:2', label: 'Projekt 3', children: '[]' }, { key: 'prj:3', label: 'Projekt 2', children: '[]' } ]Esto está bien, pero me di cuenta de que los elementos secundarios no se representan porque hay comillas alrededor de los corchetes en la ruta de los elementos secundarios. ¿Cómo puedo solucionar esto?
Si initial es su json para ser mapeado a Tree , entonces necesita hacer una ligera modificación para convertir la cadena en una matriz
let initial = [ { key: 'prj:1', label: 'Projekt 1', children: '[{"key":"tpr:1","label":"Teilprojekt 1"},{"key":"tpr:2","label":"Teilprojekt 2"}]' }, { key: 'prj:2', label: 'Projekt 3', children: '[]' }, { key: 'prj:3', label: 'Projekt 2', children: '[]' } ] let converted = initial.map(obj => ({ ...obj, children: JSON.parse(obj.children)})) console.log(converted)