【问题标题】:How to parse multi dimensional JSON data through Javascript如何通过Javascript解析多维JSON数据
【发布时间】:2017-02-09 19:29:59
【问题描述】:

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

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

【问题讨论】:

    标签: javascript json


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以将 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..
          }
      }
      

      希望对你有帮助

      【讨论】:

        【解决方案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));
        
                    });
        });
        ​
        

        希望这会有所帮助。

        【讨论】:

          【解决方案4】:

          如果 json 数据是 raw 则使用 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
          }
          

          【讨论】:

            【解决方案5】:

            你可以使用JQuery的每个函数:

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

            【讨论】:

              【解决方案6】:

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2014-02-08
                • 1970-01-01
                • 1970-01-01
                • 2013-08-04
                • 1970-01-01
                • 1970-01-01
                • 2011-11-08
                • 2012-09-10
                相关资源
                最近更新 更多