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

10

如何解析这种类型的 JSON 数据,以获取“结果”中的单个值,例如邮政编码、州等

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

14

首先,你需要使用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...

9
你可以像下面这样将JSON结果赋值给变量。
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

再次提到,jQuery是你的好朋友

我已经发布了一个使用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));

            });
});
​

希望这能帮到你。

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
}

1

您可以使用 JQuery 的 each 函数:

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

0
使用 JSON.parse(jsonstring)。然后遍历对象/数组。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接