0

我有一个像这样得到 Json 响应的网页

{
   'hotel_1page':[
      {
         'id':'10',
         'name':'fsf',
         'telephone':'233333'
      },
      {
         'id':'11',
         'name':'setttttt',
         'telephone':'213123123'
      },
      {
         'id':'12',
         'name':'fsdfsdf',
         'telephone':'122212121'
      },
      {
         'id':'13',
         'name':'xxcvcxv',
         'telephone':'2147483647'
      },
      {
         'id':'14',
         'name':'dssdfg',
         'telephone':'2147483647'
      },
      {
         'id':'15',
         'name':'dfsdfsdf',
         'telephone':'21312321'
      },
      {
         'id':'16',
         'name':'fx_test_nw1',
         'telephone':'23232323'
      },
      {
         'id':'17',
         'name':'fx_test_nw2',
         'telephone':'31313131'
      }
   ]
}

我想遍历这些数据并将这些数据放入数组并显示为 html 我该如何实现

这是我得到 json 响应的地方,当我 var_dump json 编码的变量$json显示为 null 时,变量显示 json 响应,

$json = file_get_contents('http://www.example.com/hotel_list.php'); 

var_dump($json);  
$array = json_decode($json, true);
var_dump($array);
4

2 回答 2

2

您尝试解析的 json 无效。将单引号更改为双引号,您应该能够将其解析为数组。

JSON文档

值可以是双引号中的字符串、数字、true 或 false 或 null,也可以是对象或数组。这些结构可以嵌套。

于 2013-06-13T10:38:18.293 回答
1

这应该有效:

$json = '{ "hotel_1page": [ { "id": "10", "name": "fsf", "telephone": "233333" }, { "id": "11", "name": "setttttt", "telephone": "213123123" }, { "id": "12", "name": "fsdfsdf", "telephone": "122212121" }, { "id": "13", "name": "xxcvcxv", "telephone": "2147483647" }, { "id": "14", "name": "dssdfg", "telephone": "2147483647" }, { "id": "15", "name": "dfsdfsdf", "telephone": "21312321" }, { "id": "16", "name": "fx_test_nw1", "telephone": "23232323" }, { "id": "17", "name": "fx_test_nw2", "telephone": "31313131" } ] }';

echo '<pre>';
var_dump(json_decode($json, true));
echo '</pre>';

我用双引号替换了所有单引号,就成功了。
我之前使用了单引号导致 json_decode 返回 null

[编辑使用]

要使用数据,您可以使用以下内容:

 $obj = json_decode($json, true);

 foreach($obj as $row)
 {
     foreach($row as $key => $item)
     {
         // $item['id']
         // $item['name']
         // $item['telephone']
     }
 }

我正在使用嵌套的 foreach(),因为 id、name 和 phone 是 hotel_page1 数组中的一个数组

于 2013-06-13T10:12:42.577 回答