Tengo algún objeto Después de usar JSON.stringify (datos) me devuelve el siguiente json:
[{"id":77,"image":{"id":266, "zoom_url":"https://img.jpg"},"name": "example name"}] si comienzo a filtrar mi objeto, agregando JSON.stringify(data, ['id','image']) me devuelve el siguiente JSON, sin zoom_url
[{"id":77,"image":{"id":266}}]en caso perfecto, necesito regresar después de la siguiente vista JSON:
[{"id":77,"image":"https://img.jpg"}]¿Cómo puedo hacer esta manipulación?
No puede hacer esto con argumentos para JSON.stringify() , porque todo lo que puede hacer es filtrar, no puede transformar la estructura. Por lo tanto, no puede reemplazar el valor del objeto de la image con solo su cadena zoom_url .
Hágalo con operaciones de matrices y objetos.
let data = [{"id":77,"image":{"id":266, "zoom_url":"https://img.jpg"},"name": "example name"}]; let new_data = data.map(({id, image}) => ({id, image: image.zoom_url})); console.log(JSON.stringify(new_data));Antes de llamar a JSON.stringify , puede convertir los data al formato que desee.
let newData = data.map(obj => { return { id: obj.id, image: obj.image.zoom_url }; }); let jsonString = JSON.stringify(newData);Usaría JSON. analizar la cadena en la matriz. Use array.map y luego transforme el objeto al formato que desee.
const str = '[{"id":77,"image":{"id":266, "zoom_url":"https://img.jpg"},"name": "example name"}]'; const data = JSON.parse(str); const result = data.map(({ id, image: { zoom_url } }) => ({id, image: zoom_url})); console.log(result);Sin toda la desestructuración
const str = '[{"id":77,"image":{"id":266, "zoom_url":"https://img.jpg"},"name": "example name"}]'; const data = JSON.parse(str); const result = data.map(function(item) { const id = item.id; const zoom_url = item.image.zoom_url; return { id: id, image: zoom_url }; }); console.log(result);