返回值显示为字符串代替json

时间:2018-01-20 12:00:31

标签: javascript php json codeigniter

我正在使用文件获取内容方法来获取统计数据,如下所示

$val = file_get_contents('https://example.com/getStatsData');

我的输出值如下所示

{"msg":"success","data":[[{"stats_abc":"1223","stats_bcd":"55684","stats_cda":"14999","stats_def":232456,"stats_efg":"432868","stats_fgh":"7558","stats_ghi":"3,778.72","stats_date":"20-01-2018 17:00 PM"}],null]}

但是当我把它解码为json_decode($ val)时。它没有显示任何东西。 任何人都可以帮助我将数据作为数组/对象获取吗?

提前致谢

3 个答案:

答案 0 :(得分:1)

这确实有效:

<?php

$json = '{
  "msg": "success",
  "data": [
    [{
      "stats_abc": "1223",
      "stats_bcd": "55684",
      "stats_cda": "14999",
      "stats_def": 232456,
      "stats_efg": "432868",
      "stats_fgh": "7558",
      "stats_ghi": "3,778.72",
      "stats_date": "20-01-2018 17:00 PM"
    }], null
  ]
}';

echo '<pre>';
print_r(json_decode($json));
echo '</pre>';

并导致:

stdClass Object
(
    [msg] => success
    [data] => Array
        (
            [0] => Array
                (
                    [0] => stdClass Object
                        (
                            [stats_abc] => 1223
                            [stats_bcd] => 55684
                            [stats_cda] => 14999
                            [stats_def] => 232456
                            [stats_efg] => 432868
                            [stats_fgh] => 7558
                            [stats_ghi] => 3,778.72
                            [stats_date] => 20-01-2018 17:00 PM
                        )
                )
            [1] => 
        )
)

只是为了表明json本身就好了。

答案 1 :(得分:1)

请试试这个:  我已经把你的响应放在本地json文件和调用,它工作正常。检查一下:

<?php
       $val= file_get_contents('http://localhost/j/test.json');
       print_r(json_decode($val,true));
?>

答案 2 :(得分:0)

首先确保,$ val不为空。 然后使用json_decode($val, 1)。这将按预期将其转换为关联数组。