解析JSON字符串的最佳方法是什么?

我使用$.getJSON生成了一个JavaScript对象(称之为'jItems' )。 在页面上,我有一个jItems中的项目适合的类别列表。 我希望点击一个类别并触发一个function,只显示该类别中的项目。 使用getJson或jquery的each()find()来从jItems提取正确的项目会jItems吗?

这完全取决于您的数据的样子,但这可能对您有所帮助:

 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 = $("
  • " + this.id + "
  • "); var items = this.items; $("#categories").append(category); category.click(function() { $("#items").empty(); for (var j in items) { var item = $(""); $("#items").append(item); } }); });

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

    编辑:现在我再次阅读你的问题…实际上,使用for循环更好,因为这更快。 无论如何,$ .each()都是for循环的包装器。 (因此例子:D)

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

    JSON的优点是你不需要解析它。 它已经是一个JavaScript对象。 您需要做的是遍历值并为您的类别列表构建输出。

    如果没有看到您的JSON结构,我就无法再提出任何建议。