详细信息:
有一个美好的一天程序员。我的服务器正在返回多维json数组。现在我只是想单独访问它,而且我对JSON格式有点困惑。
问题1:这些Type1和Type2 json格式有什么区别?
JSON Type 1
{
"name": "Stackoverflow",
"exp": "4month",
"status":
{
"username": "koushik",
"password": "mypassword"
}
}
JSON Type 2
{
"name": "Stackoverflow",
"exp": "4month",
"status": [
{
"username": "koushik",
"password": "mypassword"
}
]
}
我知道两者都是有效的json格式,但它们的区别在哪里?
问题2:使用ajax我可以处理单维json数据
示例:可行
$.ajax({
url:"temp.json",
dataType:"json",
success:function(data){
alert(data.name);
}
});
以同样的方式我如何处理多维json数组。例如我想得到类似警告(data => status => username)的内容。我知道这很容易,但我很震惊。提前谢谢。
答案 0 :(得分:4)
问题1:这些Type1和Type2 json格式有什么区别?
在第一个中,status
属性引用一个对象(反过来又有两个属性)。在第二个中,status
属性引用一个数组,第一个也是唯一一个元素是一个对象(又有两个属性)。
问题2:
对于你的" Type1"你可以这样做:
data.status.username
对于你的" Type2":
data.status[0].username
...或者如果是真实世界的情况" Type2"有一个包含更多对象的数组,你可以循环遍历这些项目并对它们做一些事情:
for(var i = 0; i < data.status.length; i++) {
console.log(data.status[i].username);
}
答案 1 :(得分:1)
你需要这样的东西 -
$.each(data.status,function(i,v){
console.log(v.username);
});
答案 2 :(得分:1)
if($.isArray(data.status)){
// JSON Type 2
$(data.status).each(function(){console.log(this.username);});
}
else
{
//JSON Type 1
console.log(data.status.username);
}