Po pierwsze, cytowany kod nie jest JSON. Twój kod jest notacją literału obiektu JavaScript. JSON jest podzbiorem tego, który został zaprojektowany w celu łatwiejszego analizowania.
Kod określa przedmiot ( data
), zawierającą zestaw ( items
I) przedmiotów (każdy z id
, name
i type
).
Nie potrzebujesz ani nie chcesz do tego celu jQuery, tylko JavaScript.
Dodawanie pozycji:
data.items.push(
{id: "7", name: "Douglas Adams", type: "comedy"}
);
To się kończy. Zobacz poniżej, aby dodać w środku.
Usuwanie przedmiotu:
Jest kilka sposobów. splice
Metoda jest najbardziej wszechstronny:
data.items.splice(1, 3);
splice
modyfikuje oryginalną tablicę i zwraca tablicę usuniętych elementów.
Dodanie w środku:
splice
w rzeczywistości dodaje i usuwa. Podpis splice
metody to:
removed_items = arrayObject.splice(index, num_to_remove[, add1[, add2[, ...]]]);
index
- indeks, od którego należy rozpocząć wprowadzanie zmian
num_to_remove
- zaczynając od tego indeksu, usuń tyle wpisów
addN
- ... a następnie wstaw te elementy
Mogę więc dodać element na trzeciej pozycji w ten sposób:
data.items.splice(2, 0,
{id: "7", name: "Douglas Adams", type: "comedy"}
);
Oznacza to: zaczynając od indeksu 2, usuń zero elementów, a następnie wstaw następujący element. Wynik wygląda następująco:
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"}
]};
Możesz usunąć niektóre i dodać od razu:
data.items.splice(1, 3,
{id: "7", name: "Douglas Adams", type: "comedy"},
{id: "8", name: "Dick Francis", type: "mystery"}
);
... co oznacza: zaczynając od indeksu 1, usuń trzy wpisy, a następnie dodaj te dwa wpisy. Co skutkuje w:
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"}
]};