C B*_*uer 1 javascript ajax jquery json data-structures
我的JSON对象构造如下:
var Source =
{
Object: [ //Array
{Title: 'Test', Type: 'Pet', Category: 'Cat', Description: 'Fluffy', Count: 2 }
]
};
Run Code Online (Sandbox Code Playgroud)
我能够弄清楚如何正确添加到'对象'数组,但我似乎无法找出基于属性列表(标题,类型,类别等)查询对象的jQuery语法.
我将一些测试代码放入click事件中,并通常检查Source.Object的长度(测试数据导致2个对象)以确认是否有数据可以使用(它通过ajax调用填充).
function clickTest(category, type) {
$(Source).find('Object[Category=\"' + category + '\"]').each(function() {
alert($(this).attr('Category')); //doesn't work
});
}
Run Code Online (Sandbox Code Playgroud)
查询这样的JSON对象的正确方法是什么?
JSON是JavaScript的原生,可以在不使用库(jQuery)的情况下循环使用.的[]代表的阵列,和{}表示对象,因此:
var obj = Source.Object;
for (var i = 0, len = obj.length; i < len; i++) {
if (obj[i].Category == category)
alert(obj[i].Category + ' ' + obj[i].Title);
}
Run Code Online (Sandbox Code Playgroud)
那也更快!好东西.
源是JSON对象,而不是HTML DOM.因此,您必须对数组使用jQuery实用程序函数:
$.grep( Source.Object, function(e) { return e.Category == category } ).each(...)
Run Code Online (Sandbox Code Playgroud)