2013-11-27 156 views
-1

什么是将json文件转换为html输出的最佳方式将JSON转换为HTML表

我有一个输出一些json的脚本。我的JSON的样子:

[ { "description" : "desc 1 test", 
    "image" : "Http://test.com/gram.png", 
    "money" : null, 
    "title" : "title2" 
    }, 
    { "description" : "desc 2 test", 
    "image" : "http://test.com/daddy.gif", 
    "money" : "$7", 
    "title" : "title2" 
    }, 
    { "description" : "desc 3 test", 
    "image" : "test.com/41057.png", 
    "money" : null, 
    "title" : "title3" 
    } 
] 

我希望它吐出出来的东西像这样的下面(测试数据),但要注意的类是奇数和偶数 - 我不知道我怎么会去说。

<tr class="gradeA"> 
      <td>title1</td> 
      <td class="center">image1</td> 
      <td class="center">desc1</td> 
      <td class="center">money1</td> 
     </tr> 
     <tr class="gradeA"> 
      <td>title2</td> 
      <td class="center">image2</td> 
      <td class="center">desc2</td> 
      <td class="center">money2</td> 
     </tr> 
     <tr class="gradeA"> 
      <td>title3</td> 
      <td class="center">image3</td> 
      <td class="center">desc3</td> 
      <td class="center">money3</td> 
     </tr> 
     <tr class="gradeA"> 
      <td>title4</td> 
      <td class="center">image4</td> 
      <td class="center">desc4</td> 
      <td class="center">money4</td> 
     </tr> 
+0

但是你在你的例子所提供的类不是奇数和偶数? – Nightfirecat

+0

您可以使用'$ res = json_decode($ json);'将其解码为一个php数组 –

+0

它被称为'zebra striping',快速搜索该术语(也许在搜索术语中追加'CSS')会发现超过你的需要。 – Jasper

回答

0

这应该工作

$str = "json code"; 
$arr = @json_decode($str)[0]; 
$html = "<table>"; 

$even = true; 

forach ($arr as $value) { 

    $html .= "<tr class = '" . ($even ? 'even' : 'odd') . "'>"; 
    $html .= "<td>{$value['title']}</td>"; 
    $html .= "<td>{$value['image']}</td>"; 
    $html .= "<td>{$value['description']}</td>"; 
    $html .= "<td>{$value['money']}</td>"; 
    $html .= "</tr>"; 

    $even = !$even; 

} 
$html .= "</table>"; 
+0

它在$ arr行上抛出一些错误? – BCLtd

+0

通常php不会对数组json_decode($ str)[0];你可以在两行中没有@字符,但它会是相同的 – Benedictus

+0

就像$ arr = json_decode($ str); $ arr = isset($ arr [0])? $ arr [0]:array(); – Benedictus