2016-07-28 55 views
-2

我需要一些JSON值的帮助。我的数据是 -如何访问数组内的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" 
    } 
] 

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

在此先感谢

+0

这是一个服务器的响应还是什么?无论如何,'response [0] .body.token'会给你带来令牌。 – marmeladze

+0

JSON是用于数据交换的*文本符号。 [(More)](http://stackoverflow.com/a/2904181/157247)如果你正在处理JavaScript源代码,而不是处理*字符串*,那么你不会处理JSON。此外,如果该*是*的意思是JSON,它将是无效的(键和字符串必须用双引号)。 –

回答

0

这是解决

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 
+0

也检查https://jsfiddle.net/zahiruldu/eaj72zz6/ –

0

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);

0

假设你已经解析了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);