如何从json输出中检索值?

时间:2010-07-18 19:05:28

标签: javascript jquery json

我是json的新手。我有json输出,看起来像这样

[
    {
        "employees": {
            "education": "BE\/B.Tech"
        },
        "0": {
            "count": "1"
        }
    },
    {
        "employees": {
            "education": "MBA"
        },
        "0": {
            "count": "3"
        }
    }
]

我想检索员工的教育和计数。我尝试过,但我无法检索这些值。

我感谢任何帮助。

感谢。

1 个答案:

答案 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].employeesemployees_list[0]["employees"]相同,但这对数字不起作用,因为不允许属性和变量以数字开头。因此,您只能 使用employees_list[0].["0"] 而不是 employees_list[0].0


但是JSON字符串的结构看起来有点奇怪。如果可以,你应该考虑以不同的方式构建它。

例如:

[
    {
        "education": "BE\/B.Tech",
        "count": "1"
    },
    {
        "education": "MBA"
        "count": "3"
    }
]

原始JSON字符串中的"0"键似乎没有用处,只会使访问变得复杂。