Añadir un nuevo elemento de matriz a un objeto JSON
Tengo un objeto en formato JSON que leo de un archivo JSON que tengo en una variable llamada teamJSON, que tiene este aspecto:
{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}
Quiero añadir un nuevo elemento a la matriz, como
{"teamId":"4","status":"pending"}
para terminar con
{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"},{"teamId":"4","status":"pending"}]}
antes de escribir en el archivo. ¿Cuál es una buena manera de añadir al nuevo elemento? Me he acercado pero todas las comillas dobles estaban escapadas. He buscado una buena respuesta en SO pero ninguna cubre bien este caso. Se agradece cualquier ayuda.
109
3
JSON es sólo una notación; para hacer el cambio quieres
parse
para poder aplicar los cambios a un JavaScript Object nativo, y luegostringify
de vuelta a JSONSi quieres añadir en la última posición entonces usa esto:
Si quieres añadir en la primera posición entonces usa el siguiente código:
Si quieres añadir en una posición determinada de un array prueba esto:
El bloque de código anterior añade un elemento después del segundo elemento.
Por ejemplo, aquí hay un elemento como el botón para añadir un artículo a la cesta y los atributos apropiados para guardar en localStorage.
Después de añadir el objeto JSON al Array el resultado es (en LocalStorage):
[{"id":"99","nameEn":"Product Name1","price":"767","image":"1462012597217.jpeg"},{"id":"93","nameEn":"Product Name2","price":"76","image":"1461449637106.jpeg"},{"id":"94","nameEn":"Nombre del producto3","price":"87","image":"1461449679506.jpeg"}].
después de esta acción puede enviar fácilmente los datos al servidor como List en Java
El ejemplo de código completo está aquí
https://stackoverflow.com/questions/23554456/how-do-i-store-a-simple-cart-using-localstorage/37169851#37169851