Во-первых, ваш цитируемый код не JSON. Ваш код является буквенной нотацией объекта JavaScript. JSON - это подмножество, разработанное для более простого анализа.
Ваш код определяет объект (data
), содержащий массив (items
) объектов (каждый из которых имеет id
, name
и type
).
Вам не нужен или не нужен jQuery для этого, просто JavaScript.
Добавление предмета:
data.items.push(
{id: "7", name: "Douglas Adams", type: "comedy"}
);
Это добавляет к концу. См. Ниже для добавления в середине.
Удаление предмета:
Есть несколько способов. Метод splice
является наиболее универсальным:
data.items.splice(1, 3); // Removes three items starting with the 2nd,
// ("Witches of Eastwick", "X-Men", "Ordinary People")
splice
изменяет исходный массив и возвращает массив удаленных элементов.
Добавление посередине:
splice
фактически добавляет и удаляет. Подпись метода splice
:
removed_items = arrayObject.splice(index, num_to_remove[, add1[, add2[, ...]]]);
index
- индекс, с которого нужно начинать вносить изменения
num_to_remove
- начиная с этого индекса, удалить столько записей
addN
- ... и затем вставьте эти элементы
Таким образом, я могу добавить элемент в 3-ю позицию следующим образом:
data.items.splice(2, 0,
{id: "7", name: "Douglas Adams", type: "comedy"}
);
Что это говорит: начиная с индекса 2, удалите ноль элементов, а затем вставьте следующий элемент. Результат выглядит так:
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"}
]};
Вы можете удалить и добавить сразу:
data.items.splice(1, 3,
{id: "7", name: "Douglas Adams", type: "comedy"},
{id: "8", name: "Dick Francis", type: "mystery"}
);
... что означает: начиная с индекса 1, удалите три записи, затем добавьте эти две записи. Что приводит к:
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"}
]};