En primer lugar, su código entre comillas no es JSON. Su código es una notación literal de objeto JavaScript. JSON es un subconjunto del diseñado para facilitar el análisis.
Su código define un objeto ( data
) que contiene una matriz ( items
) de objetos (cada uno con una id
, name
y type
).
No necesitas ni quieres jQuery para esto, solo JavaScript.
Agregar un artículo:
data.items.push(
{id: "7", name: "Douglas Adams", type: "comedy"}
);
Eso se suma al final. Vea a continuación para agregar en el medio.
Eliminar un artículo:
Hay varias formas. El splice
método es el más versátil:
data.items.splice(1, 3);
splice
modifica la matriz original y devuelve una matriz de los elementos que eliminó.
Añadiendo en el medio:
splice
en realidad, agrega y quita. La firma del splice
método es:
removed_items = arrayObject.splice(index, num_to_remove[, add1[, add2[, ...]]]);
index
- el índice en el que comenzar a realizar cambios
num_to_remove
- comenzando con ese índice, elimine tantas entradas
addN
- ... y luego inserta estos elementos
Entonces puedo agregar un elemento en la tercera posición como este:
data.items.splice(2, 0,
{id: "7", name: "Douglas Adams", type: "comedy"}
);
Lo que dice es: comenzando en el índice 2, elimine cero elementos y luego inserte el siguiente elemento. El resultado se ve así:
var data = {items: [
{id: "1", name: "Snatch", type: "crime"},
{id: "2", name: "Witches of Eastwick", type: "comedy"},
{id: "7", name: "Douglas Adams", type: "comedy"},
{id: "3", name: "X-Men", type: "action"},
{id: "4", name: "Ordinary People", type: "drama"},
{id: "5", name: "Billy Elliot", type: "drama"},
{id: "6", name: "Toy Story", type: "children"}
]};
Puede eliminar algunos y agregar algunos a la vez:
data.items.splice(1, 3,
{id: "7", name: "Douglas Adams", type: "comedy"},
{id: "8", name: "Dick Francis", type: "mystery"}
);
... lo que significa: comenzando en el índice 1, elimine tres entradas, luego agregue estas dos entradas. Lo que resulta en:
var data = {items: [
{id: "1", name: "Snatch", type: "crime"},
{id: "7", name: "Douglas Adams", type: "comedy"},
{id: "8", name: "Dick Francis", type: "mystery"},
{id: "4", name: "Ordinary People", type: "drama"},
{id: "5", name: "Billy Elliot", type: "drama"},
{id: "6", name: "Toy Story", type: "children"}
]};