10

我如何解析这种类型的 json 数据,获取“结果”以获取单个值,如邮政编码、状态等

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

6 回答 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...
于 2012-04-10T06:43:45.087 回答
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..
    }
}

希望对你有帮助

于 2012-04-10T06:46:33.420 回答
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));

            });
});
​

希望这可以帮助。

于 2012-04-10T07:03:09.777 回答
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
}
于 2017-02-09T11:29:59.773 回答
1

您可以使用 JQuery 每个功能:

$.each(myData.row, function(index,item) {
  // here you can extract the data
  alert (item.zipcode);
});
于 2012-04-10T06:43:03.183 回答
0

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

于 2012-04-10T06:43:29.457 回答