如何获取json对象中的子对象
怎么获取json对象中的子对象?
jquery里用ajax获取数据:
accounts.json里数据是:
{"accounts":{"value":[{"name": "a","accountid": "1","role": "user","tenant": "t"},{"name": "b","accountid": "2","role": "user","tenant": "tt"}]}}
现在alert的是undefined。
我想获取value下的数组,该怎么写?
------解决方案--------------------
返回的是字符串吧,转成json对象就行了。
------解决方案--------------------
$.ajax({
url: './accounts.json',
type: 'get',
dataType: 'json account.models',
data: params,
success: function(json){
alert(eval(json.accounts).length);
return json.accounts;
},
error: error})
建议你使用js调试工具,强烈推荐firebug,看看你传入的参数到底是什么,你应该传进去的是字符串,用eval方法就能得到json对象了
------解决方案--------------------
出现undefind是因为json是字符串,字符串没有accounts属性
2楼用eval方法转换是对的,但是参数不对,既然json.accounts是undefind,怎么可能转换成功?
直接alert(eval(json));
还有,根据你写的字符串,转换成功后是一个对象,要访问那个数组,这样:
var obj=eval(json);
var arr=obj.accounts.value;
然后就可以用arr[index]访问数组成员了
jquery里用ajax获取数据:
- JScript code
$.ajax({ url: './accounts.json', type: 'get', dataType: 'json account.models', data: params, success: function(json){ alert(json.accounts); return json.accounts; }, error: error})
accounts.json里数据是:
{"accounts":{"value":[{"name": "a","accountid": "1","role": "user","tenant": "t"},{"name": "b","accountid": "2","role": "user","tenant": "tt"}]}}
现在alert的是undefined。
我想获取value下的数组,该怎么写?
------解决方案--------------------
返回的是字符串吧,转成json对象就行了。
------解决方案--------------------
$.ajax({
url: './accounts.json',
type: 'get',
dataType: 'json account.models',
data: params,
success: function(json){
alert(eval(json.accounts).length);
return json.accounts;
},
error: error})
建议你使用js调试工具,强烈推荐firebug,看看你传入的参数到底是什么,你应该传进去的是字符串,用eval方法就能得到json对象了
------解决方案--------------------
出现undefind是因为json是字符串,字符串没有accounts属性
2楼用eval方法转换是对的,但是参数不对,既然json.accounts是undefind,怎么可能转换成功?
直接alert(eval(json));
还有,根据你写的字符串,转换成功后是一个对象,要访问那个数组,这样:
var obj=eval(json);
var arr=obj.accounts.value;
然后就可以用arr[index]访问数组成员了