代码之家  ›  专栏  ›  技术社区  ›  Jamshaid Alam

如何在javascript中访问json数据?

  •  1
  • Jamshaid Alam  · 技术社区  · 6 年前

    我想得到 name

    json看起来像这样

    enter image description here

        var result = null;
        xhr.addEventListener("readystatechange", function () {
          if (this.readyState === this.DONE) {
    
            result = JSON.parse(this.responseText);
    
               for(var i = 0; i <= result.total_count; i++)
               {
                   console.log(result.data[i].name);
               }
          }
        });
    

    这是给我的结果,我想,但有一个错误

    Cannot read property 'name' of undefined in log.
    
    2 回复  |  直到 6 年前
        1
  •  4
  •   Mathyn    6 年前

    您需要首先解析JSON:

    const result = JSON.parse(this.responseText);
    console.log(result.data[0].name);
    

    这个 responseText data String

    使用 JSON.parse 方法将字符串转换为具有数据属性的Javascript对象。

        2
  •  0
  •   Turnip Moushumi Ahmed    6 年前

    {
        "name": "mkyong",
        "age": 30,
        "address": {
            "streetAddress": "88 8nd Street",
            "city": "New York"
        },
        "phoneNumber": [
            {
                "type": "home",
                "number": "111 111-1111"
            },
            {
                "type": "fax",
                "number": "222 222-2222"
            }
        ]
    }
    

    遵循以下代码:

    <script>
           var data = '{"name": "mkyong","age": 30,"address": {"streetAddress": "88 8nd Street","city": "New York"},"phoneNumber": [{"type": "home","number": "111 111-1111"},{"type": "fax","number": "222 222-2222"}]}';
    
        var json = JSON.parse(data);
    
        alert(json["name"]); //mkyong
        alert(json.name); //mkyong
    
        alert(json.address.streetAddress); //88 8nd Street
        alert(json["address"].city); //New York
    
        alert(json.phoneNumber[0].number); //111 111-1111
        alert(json.phoneNumber[1].type); //fax
    
        alert(json.phoneNumber.number); //undefined
    </script>