2017-04-12 118 views
0

我有一些问题如何将JSON转换为HTML表格。CodeIgniter上的JSON转换为HTML表格

现在我使用CI作为PHP的框架。
但事情是我只需要知道如何将此JSON type转换为HTML表格。

我只需要在HTML表中获取这些。

  • 货币名称(例如:澳元美元)
  • 和 “Jual,贝利” 号。 (如:AUD Jual:9987.1贝利9907.11)

我已经尝试解码那个JSON数组,但我仍然没有得到它..

这里是我的数组:

stdClass Object (
    [Message] => stdClass Object (
    [Code] => 200 [Message] => request success 
) 
    [Data] => stdClass Object (
    [AUD] => stdClass Object (
     [Jual] => 9987.11 [Beli] => 9907.11 
    ) 
    [CAD] => stdClass Object (
     [Jual] => 10003.21 [Beli] => 9923.21 
    ) 
    [CHF] => stdClass Object (
     [Jual] => 13236.59 [Beli] => 13136.59 
    ) 
    [CNY] => stdClass Object (
     [Jual] => 1983.66 [Beli] => 1863.66 
    ) 
    [DKK] => stdClass Object (
     [Jual] => 1934.2 [Beli] => 1854.2 
    ) 
    [EUR] => stdClass Object (
     [Jual] => 14136.37 [Beli] => 14036.37 
    ) 
    [GBP] => stdClass Object (
     [Jual] => 16638.24 [Beli] => 16538.24 
    ) 
    [HKD] => stdClass Object (
     [Jual] => 1722.32 [Beli] => 1692.32 
    ) 
    [JPY] => stdClass Object (
     [Jual] => 122.67 [Beli] => 119.27 
    ) 
    [NZD] => stdClass Object (
     [Jual] => 9242.72 [Beli] => 9162.72 
    ) 
    [SAR] => stdClass Object (
     [Jual] => 3578.14 [Beli] => 3498.14 
    ) 
    [SEK] => stdClass Object (
     [Jual] => 1511.47 [Beli] => 1431.47 
    ) 
    [SGD] => stdClass Object (
     [Jual] => 9481.43 [Beli] => 9461.43 
    ) 
    [USD] => stdClass Object (
     [Jual] => 13277 [Beli] => 13261 
    ) 
) 
    [LastUpdate] => 2017-04-12 23:00:08 
    [ProcessingTime] => 0.0388939380646 
) 
+1

做json_decode($ data,true)得到一个数组。 – Dimi

+0

您是否考虑过在控制器中构建并返回表格html?然后简单地返回html。从它的外观来看,html不会比JSON返回更多的数据(字节)。 Codeigniter也有一个用于构建表的漂亮库。 – DFriend

+0

**我格式化了问题A LOT **。请在发布你的下一个问题之前,看看http://stackoverflow.com/help/formatting –

回答

1

试试 “json_decode”(http://php.net/manual/en/function.json-encode.php)和 “foreach” 循环结构(http://php.net/manual/en/control-structures.foreach.php),两者无论哪个一起使用的PHP框架的使用:

$json_object = json_decode(file_get_contents('http://www.adisurya.net/kurs-bca/get')) ; 

echo '<table>' ; 
foreach ($json_object -> Data as $currency => $data) { 

    echo '<tr>' ; 
    echo '<td>' . $currency . '</td>' ; 
    echo '<td>' . $data -> Jual . '</td>' ; 
    echo '<td>' . $data -> Beli . '</td>' ; 
    echo '</tr>' ; 

} 
echo '</table>' ; 
+0

是的,''和''是可选的,但是学习某人编写较少可读代码并不是一个好主意。 – shaggy

+0

@shaggy谢谢指针;修改它。 – sammysaglam

+0

因为现代浏览器修复它,所以它是“实践中”的选项*。不过,它需要成为有效的HTML。 –

0

如果您使用AJAX检索此数据。我会建议先使用JSON.parse函数,然后在页面中使用每个循环。

如果您的表

<table id="mytable"></table> 

JQUERY AJAX代码

$.get("http://www.adisurya.net/kurs-bca/get", function(data, status) { 

    if (status == "success") { 
    var loopdata = JSON.parse(data); 
    $.each(loopdata.data, function(i, item) { 
     $('#mytable').append("<td>"+item+"</td>"); 
    }); 
    } 
}); 
+0

感谢AJAX代码,但我需要的只是用于显示,谢谢回答:) –

0

要转换JSON反对,而不是一个数组。最好的办法是处理JSON在你的控制器:

$json = file_get_contents('http://www.adisurya.net/kurs-bca/get'); 
$data['json_array'] = json_decode($json, true); 

,并通过阵列到您的视图(更改您的视图的名称):

$this->load->view('homepage', $data); 

在你看来,你附和你的表:

if (!empty($json_array)) { 
    echo '<table>'; 
    foreach ($json_array as $currency => $currency_data) { 
     echo '<tr>'; 
     echo '<td>'.$currency.'</td>'; 
     echo '<td>'.$currency_data['Jual'].'</td>'; 
     echo '<td>'.$currency_data['Beli'].'</td>'; 
     echo '</tr>'; 
    }  
    echo '</table>'; 
} 
+0

感谢@shaggy但它似乎是一个PHP错误遇到
未定义指数:贝利和非法串偏移“Jual”是什么原因造成的? –

+0

与foreach有点混淆,就像@sammysaglam有.. –