在CodeIgniter上将JSON转换为HTML表

时间:2017-04-12 17:00:15

标签: php html json codeigniter

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

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

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

  • 货币名称(例如:AUD,USD)
  • 和“Jual,Beli”号码。 (例如:AUD Jual:9987.1 Beli 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 
)

3 个答案:

答案 0 :(得分:2)

尝试" 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>' ;

答案 1 :(得分:0)

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

如果你的表

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

JQUERY AJAX CODE

$.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>");
    });
  }
});

答案 2 :(得分: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>';
}