为什么在尝试访问通过Ajax返回的json数据中的值时我变得未定义

时间:2019-04-28 13:39:36

标签: javascript

data [0]正确返回json数据的第0行,但尝试访问键(如service),并且online返回undefined。

 <script>
      $.ajax({
    url:"count.php",
    dataType:'json', 
    success: function(data, status){
      console.log(data[0].online);
    }
  });
    </script>

count.php

<?php 

$data = array();

 $data[] = file_get_contents('https://xxxxxik.php?%20metod=get_count_new%20&service=pro1&apikey=sdss');
  $data[] = file_get_contents('https://xxxxxik.com/priemnik.php?%20metod=get_count_new%20&service=pro2&apikey=sdds');
  echo json_encode($data);
?>

console.log(data)打印以下json

[
  "{\"service\":\"pro1\",\"online\":91}",
  "{\"service\":\"pro2\",\"online\":0}"
]

2 个答案:

答案 0 :(得分:1)

数组data包含字符串。您可以使用Array​.prototype​.map()JSON.parse()将其转换为对象数组。

$.ajax({
   url:"count.php",
   dataType:'json', 
   success: function(data, status){
      data = data.map(x => JSON.parse(x))
      console.log(data[0].online)
   }
});

答案 1 :(得分:0)

您需要先解析数据:

 <script>
      $.ajax({
    url:"count.php",
    dataType:'json', 
    success: function(data, status){
      data = JSON.parse(data);
      console.log(data[0].online);
    }
  });
    </script>