2011-08-16 29 views
0

我从PHP中的mysql数据库返回行,然后使所有这些行的数组,然后json编码。然后,我试图将该json转换为jquery的自动完成,而不是该关联。我的问题是,一旦我在json中拥有它,就没有定义行。如何访问json中返回的每个“行”中相同的json.id?这里是我使用通过json迭代并访问两个维深

 [{"id":"95833","fname":"john","lname":"walker","email":"[email protected]","major":"UNDECID ED","year":"14","gender":"0","created":"0000-00-00 00:00:00"},  {"id":"95834","fname":"joseph","lname":"train","email":"[email protected]","major":"","year":" 12","gender":"0","created":"0000-00-00 00:00:00"}] 

样本JSON对象,我做我访问的第一个ID,或者第二个?等

+0

为了澄清一些术语:这是一个JavaScript对象字面,而不是一个 “JSON对象。” [没有像“JSON对象”那样的东西。](http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/)。 –

回答

0

jQuery将解析JSON成你的对象的Javascript数组:

data[0].id // First id 
data[1].id // Second id 
1

这里展示了如何将数据遍历一些示例代码:

var data = [{"id":"95833","fname":"john","lname":"walker","email":"[email protected]","major":"UNDECID ED","year":"14","gender":"0","created":"0000-00-00 00:00:00"},  {"id":"95834","fname":"joseph","lname":"train","email":"[email protected]","major":"","year":" 12","gender":"0","created":"0000-00-00 00:00:00"}]; 
for(var i = 0; i < data.length; i ++) 
{ 
    var item = data[i]; 
    var thisID = item.id; 
    // do something clever here 
} 
0

我认为,我认为你试图访问“列”,而不是行。顺便说一下,SQL数据库的关系模型与大多数语言的对象模型不匹配的这个一般问题被称为“阻抗不匹配”,并且它很糟糕。

$.map(data, function(n) { return n.id }); 

将返回一个包含所有id值的数组:您的具体问题可以(jQuery中)与解决。

0

如果您正在使用jQuery的1.6那么它很简单

// to get ['id', 'fname', 'lname', 'email', 'major', 'year', 'gender', 'created'] 
// you only need to map the first element of the data array and return the key. 

var columnArray = $.map(data[0], function (val, k) { 
    return k; 
}); 

编码快乐:)