首先,您引用的代码不是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
- ...然后插入这些元素
所以我可以像这样在第三个位置添加一个项目:
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"}
]};