【问题标题】:How can I access json data inside array?如何访问数组内的 json 数据?
【发布时间】:2016-12-02 17:26:53
【问题描述】:

我需要一些关于 json 值的帮助。我的数据是 -

[  
   {  
      "statusCode":200,
      "body":{  
         "token":"xxxxx"
      },
      "headers":{  
         "date":"Thu, 28 Jul 2016 11:03:17 GMT",
         "server":"Apache/2.2.15 (CentOS)",
         "x-powered-by":"PHP/5.6.22",
         "cache-control":"private, must-revalidate",
         "etag":"\"9517ef72d528ad7a3bc04c64d1cc1cc9\"",
         "set-cookie":[  
            "XSRF-TOKEN=xxx; expires=Thu, 28-Jul-2016 13:03:17 GMT; Max-Age=7200; path=/",
            "laravel_session=eyJpdiI6IkZITXdyTGtpZlRkc1hmQkptUWpZSEE9PSIsInZhbHVlIjoicGxLUmJxRzlcL2dGTTdVcVJiQ1g2QTh4enQxdDI5NElCbGJkVllKYVR0MG1LQTljaFhhUFJSUVVXTytheUxqajZjV3FVUkh2SUhPK0ZtelhIQjcxVk5nPT0iLCJtYWMiOiJkOTg1MWFiYjY5ZTdhNThkODk5N2Y1MmRlOWEwZWMwYWQ4MGE4ZDVjMWRjMGMwNjA0MTlmNjQ1YzNmNDM3NWVkIn0%3D; expires=Thu, 28-Jul-2016 13:03:17 GMT; Max-Age=7200; path=/; httponly"
         ],
         "vary":"Accept-Encoding",
         "content-length":"305",
         "connection":"close",
         "content-type":"application/json"
      },
      "request":{  
         "uri":{  
            "protocol":"http:",
            "slashes":true,
            "auth":null,
            "host":"api.shobkichhu.com",
            "port":80,
            "hostname":"api.shobkichhu.com",
            "hash":null,
            "search":null,
            "query":null,
            "pathname":"/api/auth/login",
            "path":"/api/auth/login",
            "href":"http://api.shobkichhu.com/api/auth/login"
         },
         "method":"POST",
         "headers":{  
            "content-type":"application/json",
            "accept":"application/json",
            "content-length":45
         }
      }
   },
   {  
      "token":"xxxx"
   }
]

我需要访问令牌。如何访问令牌?

提前致谢

【问题讨论】:

  • 这是服务器响应还是什么?无论如何,response[0].body.token 会给你令牌。
  • JSON 是一种用于数据交换的文本符号(More) 如果您正在处理 JavaScript 源代码,而不是处理 string,那么您就不是在处理 JSON。此外,如果 是 JSON,那么它将是无效的(键和字符串必须用双引号括起来)。

标签: javascript json jsonp


【解决方案1】:

这就是解决办法

var data =[  
   {  
      "statusCode":200,
      "body":{  
         "token":"xxxxx"
      },


   },
   {  
      "token":"xxxx"
   }
];


console.log(data[0].body.token); // for first token
console.log(data[1].token); // for second token

【讨论】:

    【解决方案2】:

    假设您已经解析了 JSON(并且它是有效的 JSON,这不是问题)并将结果分配给 data,您可以这样访问它:

    data[0].body.token
    

    ...因为:

    • data 指的是一个数组
    • [0] 访问数组中的第一个条目,它引用一个对象
    • .body 访问该对象的 body 属性值,该值引用另一个对象
    • .token 访问该对象的 token 属性值

    例如:

    var json = '[{"body":{"token":"xxxxxxx"}},{"other":"aaa"}]';
    var data = JSON.parse(json)
    console.log(data[0].body.token);

    【讨论】:

      【解决方案3】:

      var myObj = [
         {
            body:
              {
                 token : 'xxxxxxx'
              }
         },
         {
            other : 'aaa'
         }
      
      ];
      console.log(myObj[0].body.token);
      //or other version
      var bodyObj = myObj.find(function(item){ return item && item.body});
      console.log(bodyObj.body.token);

      【讨论】:

        猜你喜欢
        • 2014-11-01
        • 2017-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多