如何通过Javascript解析多维JSON数据

时间:2012-04-10 06:40:57

标签: javascript json

我如何解析这种类型的json数据,获取“结果”以获取单个值,如zipcode,state等

{
    "row": [
        {
        "id": "5",
        "name": "test",
        "email": "test@test.com",
        "street": "mystreet",
        "city": "mycity",
        "state": "mystate",
        "zipcode": "123456",
        "myimage": "image.gif"}
    ]
}​

6 个答案:

答案 0 :(得分:13)

首先,您需要使用JSON.parse

解析该字符串
var myJson = JSON.parse(the_raw_data_string);

它最终变成了这样一个对象:

var myJson = {
    "row": [
        {
        "id": "5",
        "name": "test",
        "email": "test@test.com",
        "street": "mystreet",
        "city": "mycity",
        "state": "mystate",
        "zipcode": "123456",
        "myimage": "image.gif"}
    ]
}​

访问项目:

myJson.row[0].id
myJson.row[0].name
myJson.row[0].street
//and so on...

答案 1 :(得分:9)

你可以将json结果带到如下的var

var json = {
    "row": [
        {
        "id": "5",
        "name": "test",
        "email": "test@test.com",
        "street": "mystreet",
        "city": "mycity",
        "state": "mystate",
        "zipcode": "123456",
        "myimage": "image.gif"}
    ]
}​

然后将结果发送到另一个

var result = json.row;

然后你可以遍历结果

for (var i = 0; i < result.length; i++) {
    var object = result[i];
    for (property in object) {
        var value = object[property];
        alert(property + "=" + value); // This alerts "id=5",  etc..
    }
}

希望这会对你有所帮助

答案 2 :(得分:3)

再次,jQuery是你的好朋友

我已在您的数据行中发布了a sample using jsfiddle多条记录

$(document).ready(function () {
var result = {
    "row": [
        {
        "id": "5",
        "name": "test",
        "email": "test@test.com",
        "street": "mystreet",
        "city": "mycity",
        "state": "mystate",
        "zipcode": "123456",
        "myimage": "image.gif"
        },
        {
        "id": "10",
        "name": "test2",
        "email": "test2@test.com",
        "street": "mystreet2",
        "city": "mycity2",
        "state": "mystate2",
        "zipcode": "7891011",
        "myimage": "image.gif"
        }
    ]
};

var oE = $("#output");
$.each(result.row, function(index, value) {
  //- extract target value like zipCode
  oE.append($("<li></li>").text(value.zipcode));

            });
});
​

希望这有帮助。

答案 3 :(得分:2)

如果json数据原始,请使用 json.parse。 之后循环多维json数据。

data = {"employees":[
    { "firstName":"Anushka", "lastName":"shetty" },
    { "firstName":"Shreya", "lastName":"Saran" },
    { "firstName":"Kajal", "lastName":"Agarwal" }
]};

for (var key in data.employees) {   
    alert(data.employees[key].firstName) //alert Anushka, Shreya, Kajal
}

答案 4 :(得分:1)

你可以使用JQuery的每个功能:

$.each(myData.row, function(index,item) {
  // here you can extract the data
  alert (item.zipcode);
});

答案 5 :(得分:0)

使用JSON.parse(jsonstring)。然后迭代对象/数组。