Po pierwsze, podany kod to , a nie JSON. Twój kod to notacja literalna obiektu JavaScript. JSON jest podzbiorem tego zaprojektowanego do łatwiejszego parsowania.
Kod określa obiekt (data
) zawierający tablicę (items
) przedmiotów (każdy z id
, name
i type
).
Nie potrzebujesz ani nie potrzebujesz jQuery, tylko JavaScript.
Dodawanie pozycji:
data.items.push(
{id: "7", name: "Douglas Adams", type: "comedy"}
);
który dodaje do końca. Zobacz poniżej, aby dodać w środku.
Usuwanie elementu:
Istnieje kilka sposobów. Metoda splice
jest najbardziej wszechstronny:
data.items.splice(1, 3); // Removes three items starting with the 2nd,
// ("Witches of Eastwick", "X-Men", "Ordinary People")
splice
zmienia oryginalnej tablicy i zwraca tablicę elementów, które usunięte.
Dodawanie w środku:
splice
faktycznie robi zarówno dodawanie i usuwanie. Podpis metody splice
jest:
removed_items = arrayObject.splice(index, num_to_remove[, add1[, add2[, ...]]]);
index
- indeks, w którym do rozpoczęcia dokonywania zmian
num_to_remove
- od tego indeksu, usuń to wiele wpisów
addN
- ...a następnie wstawić te elementy
Więc mogę dodać element w 3. pozycji tak:
data.items.splice(2, 0,
{id: "7", name: "Douglas Adams", type: "comedy"}
);
Co to mówi to: od indeksu 2, usunąć zerowe elementy, a następnie wstawić ten po pozycja. Wynik wygląda tak:
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"}
]};
Możesz usunąć niektóre i dodać kilka naraz:
data.items.splice(1, 3,
{id: "7", name: "Douglas Adams", type: "comedy"},
{id: "8", name: "Dick Francis", type: "mystery"}
);
... co oznacza: od indeksie 1, usunąć trzy pozycje, a następnie dodać te dwa wpisy . Co powoduje:
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"}
]};
** To nie jest JSON. ** JSON to _string_. To jest dosłowny obiekt JavaScript. Nie potrzebujesz jQuery do manipulowania obiektami JavaScript z wanilią. –
To nie jest JSON. To jest dosłowny obiekt: http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json (* i krucjata przeciwko obiektom JSON trwa ... *) –
@Matt: Rzeczywiście. Cóż, JSON jest tekstowym formatem danych. Cytowany kod nie byłby JSON nawet jeśli byłby w ciągu znaków (ponieważ JSON wymaga podwójnych cudzysłowów na nazwach właściwości). –