我是json的新手。我有json输出,看起来像这样
[
{
"employees": {
"education": "BE\/B.Tech"
},
"0": {
"count": "1"
}
},
{
"employees": {
"education": "MBA"
},
"0": {
"count": "3"
}
}
]
我想检索员工的教育和计数。我尝试过,但我无法检索这些值。
我感谢任何帮助。
感谢。
答案 0 :(得分:10)
假设您的JSON字符串位于变量$json
中,它将如下所示:
var employees_list = JSON.parse($json);
然后您可以通过以下方式访问信息:
employees_list[0].employees.education // gives you "BE\/B.Tech"
// and
employees_list[0]["0"].count // gives you 1.
您也可以循环遍历数组并以这种方式访问所有不同的education
。
<强>更新强>
为了更好地证明哪个表达式访问哪些信息:
[ // employees_list
{ // employees_list[0]
"employees": { // employees_list[0].employees
"education": "BE\/B.Tech" // employees_list[0].employees.education
},
"0": { // employees_list[0]["0"]
"count": "1" // employees_list[0]["0"].count
}
},
{ // employees_list[1]
"employees": { // employees_list[1].employees
"education": "MBA" // employees_list[1].employees.education
},
"0": { // employees_list[1]["0"]
"count": "3" // employees_list[1]["0"].count
}
}
]
通常employees_list[0].employees
与employees_list[0]["employees"]
相同,但这对数字不起作用,因为不允许属性和变量以数字开头。因此,您只能 使用employees_list[0].["0"]
而不是 employees_list[0].0
。
但是JSON字符串的结构看起来有点奇怪。如果可以,你应该考虑以不同的方式构建它。
例如:
[
{
"education": "BE\/B.Tech",
"count": "1"
},
{
"education": "MBA"
"count": "3"
}
]
原始JSON字符串中的"0"
键似乎没有用处,只会使访问变得复杂。