什么是JSON字符串解析的最佳方式?(What's the best way to pars

2019-10-17 02:12发布

我已经生成的JavaScript对象(称它为'jItems' )使用$.getJSON 。 在页面上,我有一个在jItems的物品放入类别列表。 我的愿望是点击一个类别和触发功能,只显示该类别中的项目。 它会更好使用getJson或jQuery的each()find()来拉从右侧项目jItems

Answer 1:

这一切都取决于你的数据看起来的样子,但是这可能会帮助你,我认为:

var jsonCats = [
    {"id": "category1", "items": [{"iid":"item1"}, {"iid":"item2"}, {"iid":"item3"}]},
    {"id": "category2", "items": [{"iid":"item4"}, {"iid":"item5"}, {"iid":"item6"}]},
    {"id": "category3", "items": [{"iid":"item7"}, {"iid":"item8"}, {"iid":"item9"}]},
    {"id": "category4", "items": [{"iid":"item0"}]}
];

$.each(jsonCats, function(key, value) {
    var category = $("<li>" + this.id + "</li>");
    var items = this.items;

    $("#categories").append(category);

    category.click(function() {
        $("#items").empty();
        for (var j in items) {
            var item = $("<option>" + items[j].iid + "</option>");

            $("#items").append(item);
        }
    });
});

看一个例子: http://jsfiddle.net/tive/U63EY/

编辑:现在,我看了你的问题又来......它实际上是更好地使用for循环,因为这是更快的。 该$。每个()是for循环的包装呢。 (因此,例如:d)

http://jsperf.com/jquery-each-vs-for-loop/6



Answer 2:

JSON的优点是你不需要对它进行解析。 这已经是一个JavaScript对象。 什么,你需要做的就是通过价值循环,并建立类别列表输出。

没有看到你的JSON结构,我不能做任何更多的建议。



文章来源: What's the best way to parse a JSON string?