【问题标题】:How to read a javascript object如何读取 javascript 对象
【发布时间】:2012-11-19 18:49:36
【问题描述】:

我正在使用 Microsoft 的 Live Connect 开发者中心

它为联系人返回这种类型的变量,但我不知道读取它的简单方法,会对其执行拆分但不知道如何读取此对象:

{"id":"contact.0d3d6bf0000000000000000000000000", "first_name":"William", "last_name":"Shakespeare", "name":"William Shakespeare", "gender":null, "is_friend":false, "is_favorite":false, "user_id":"2ae098749083cb3d", "email_hashes":["a790b818acfdef744a23bef534dfd9a4a53aa834250bdfe55f6874543129daa6"], "updated_time":"2012-10-04T19:23:34+0000"}

我需要使用其中的内容访问 name 和 email_hashes: a790b818acfdef744a23bef534dfd9a4a53aa834250bdfe55f6874543129daa6 - 不带括号。

只是不知道如何阅读这种对象。

【问题讨论】:

  • 你的环境是什么?
  • 那是“一个数组”。您需要访问第一个元素(索引 = 0):x = {a: ["b"]}; alert(x.a[0])

标签: javascript variables object


【解决方案1】:

JSON.parse() 专门设计用于获取 JSON 格式的字符串并生成一个 JavaScript 对象,然后您可以从中访问属性。

【讨论】:

  • 可能超出了这个问题的范围,但请注意 JSON 对象在默认情况下并非在所有浏览器上都可用。
【解决方案2】:

这看起来像 JSON。如果你使用 jQuery,你可以这样做:

var jsonData = $.parseJSON('{"id":"contact..."}');
alert('name: ' + jsonData.id);

有关更多用法示例,请参阅文档:http://api.jquery.com/jQuery.parseJSON/

【讨论】:

    【解决方案3】:

    您收到的响应是一个键/值对。您可以使用键访问任何值

    obj[key] // value
    

    obj.key // value
    

    【讨论】:

      【解决方案4】:

      如果

      var x = {"id":"contact.0d3d6bf0000000000000000000000000", "first_name":"William", "last_name":"Shakespeare", "name":"William Shakespeare", "gender":null, "is_friend":false, "is_favorite":false, "user_id":"2ae098749083cb3d", "email_hashes":["a790b818acfdef744a23bef534dfd9a4a53aa834250bdfe55f6874543129daa6"], "updated_time":"2012-10-04T19:23:34+0000"}
      

      然后

      x.email_hashes
      

      返回

      ["a790b818acfdef744a23bef534dfd9a4a53aa834250bdfe55f6874543129daa6"]
      

      x.email_hashes[0]
      

      返回

      "a790b818acfdef744a23bef534dfd9a4a53aa834250bdfe55f6874543129daa6"
      

      【讨论】:

        【解决方案5】:

        当您使用 JSON 获取变量时,请执行以下操作:

        var stringData = {}, // Incoming data
            data = JSON.parse(stringData);
        

        然后,您可以像这样访问变量:

        var id = data.id,
            firstName = data.first_name;
        

        要访问数组值,请执行以下操作:

        var emailHashes = data.email_hashes;
        if (emailHashes.length > 0) {
            var i = 0;
        
            for (; i < emailHashes.length; i++) {
                 // perform some action on them.
            }         
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-17
          • 2016-04-12
          相关资源
          最近更新 更多