En primer lugar, su código entre comillas es no JSON. Su código es la notación literal del objeto de JavaScript. JSON es un subconjunto de eso diseñado para un análisis más fácil.
Su código define un objeto (data
) que contiene una matriz (items
) de objetos (cada uno con un id
, name
, y type
).
No necesita ni desea jQuery para esto, solo JavaScript.
Adición de un artículo:
data.items.push(
{id: "7", name: "Douglas Adams", type: "comedy"}
);
que se suma al final. Vea a continuación para agregar en el medio.
Extracción de un artículo:
Hay varias maneras. El método splice
es el más versátil:
data.items.splice(1, 3); // Removes three items starting with the 2nd,
// ("Witches of Eastwick", "X-Men", "Ordinary People")
splice
modifica la matriz original, y devuelve una matriz con los artículos que haya retirado.
Adición en el medio:
splice
hace realmente tanto la adición y eliminación. La firma del método es splice
:
removed_items = arrayObject.splice(index, num_to_remove[, add1[, add2[, ...]]]);
index
- el índice en el cual empezar a hacer cambios
num_to_remove
- a partir de ese índice, eliminar esta cantidad de entradas
addN
- ...y luego introduce los elementos
Así que puede agregar un elemento en la tercera posición de la siguiente manera:
data.items.splice(2, 0,
{id: "7", name: "Douglas Adams", type: "comedy"}
);
Lo que dice es: a partir de índice 2, retire cero elementos, y luego insertar este siguiente ít. El resultado es el siguiente:
var data = {items: [
{id: "1", name: "Snatch", type: "crime"},
{id: "2", name: "Witches of Eastwick", type: "comedy"},
{id: "7", name: "Douglas Adams", type: "comedy"}, // <== The new item
{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 añadir un poco a la vez:
data.items.splice(1, 3,
{id: "7", name: "Douglas Adams", type: "comedy"},
{id: "8", name: "Dick Francis", type: "mystery"}
);
... que significa: Comenzando en el índice 1, retirar tres entradas, a continuación, añadir 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"}
]};
** Eso no es JSON. ** JSON es un _string_. Ese es un objeto de JavaScript literal. No necesita jQuery para manipular objetos de JavaScript vanos. –
Esto no es JSON. Este es un objeto literal: http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json (* y la cruzada contra objetos JSON continúa .... *) –
@ Matt: De hecho. Bueno, JSON es un formato de datos textuales. Y el código entrecomillado no sería JSON, incluso si estuviera en una cadena (como JSON requiere comillas dobles en los nombres de las propiedades). –