我工作的公司决定将所有数据库查询保存在一个RESTful API文件中。是一个很大的学习曲线,但最后我有了JSON对象返回数据。我现在的问题是如何将值填充到HTML表中。
下面我将向您展示我现在所拥有的,我已经尝试过的内容和示例代码,因此您可能会建议我需要更正的地方。
非常感谢。
1.首先请求数据:
$schoolid = $_GET['schoolid'];
$data = file_get_contents("http://www.mydomainname.com/api/webapi.php?Oper=liststudents&schoolid=" . $schoolid);
echo $data;2.,这是一个结果的样本。很明显,Json字符串:
{"data":[{
"ID":"0450",
"FirstName":"\u05d9\u05d5\u05e1\u05e3\u05de\u05e0\u05d7\u05dd",
"LastName":"\u05d1\u05d9\u05e0\u05e0\u05e2\u05e8",
"SchoolID":"17",
"UID":"0001","
TeacherID":"26"},{"ID":"0017",
"FirstName":"\u05d0\u05e8\u05e8\u05d9\u05d9\u05e0\u05d3",
"LastName":"\u05d6\u05d0\u05d1",
"SchoolID":"17","UID":"0017",
"TeacherID":"24"},{"ID":"0018",
"FirstName":"\u05d3\u05d5\u05d1 \u05d2\u05dc\u05d5\u05d9\u05d1,
"LastName":"\u05d9\u05e9\u05db\u05e8",
"SchoolID":"17",
"UID":"0018",
"TeacherID":"24"}我想它仍然是一个必须被解析的物体..。所以现在,
3.以下是我正在努力实现的目标的一个例子。
|ID| FirstNm | LastNm | School |UID| Teacher|
|---|------------|-----------|-----------|-----|------------|
|---|------------|-----------|-----------|-----|------------|等等,如此遥远.
4.下面是我尝试过的一些方法,但是我要么得到"0“结果,要么抛出一个错误。
一个。
foreach($data->{'data'} as $obj){
echo '<tr>
<td>' . $obj->{'ID'} .'</td>
<td>' . $obj->{'FirstName'} .'</td>
<td>' . $obj->{'LastName'} .'</td>
<td>' . $obj->{'SchoolID'} .'</td>
<td>' . $obj->{'UID'} .'</td>
<td>' . $obj->{'TeacherID'} .'</td>
</tr>'B.
foreach ($data as $key => $jsons) {
$table ='<table class="'.$jsons['class'].'" border="1">';
foreach ($jsons as $rkey => $rvalue) {
if($rkey=='head')
{
$table.='<tr>';
foreach($rvalue as $rvv)
{
$table.='<th>'.$rvv.'</th>';
}
$table.='</tr>';
}else
if($rkey=='rows')
{
foreach($rvalue as $rvv)
{
$table.='<tr>';
foreach($rvv as $rv)
{
$table.='<td>'.$rv.'</td>';
}
$table.='</tr>';
}
}
}
}
echo $table;再试几次,但我只需要一个工作模式.
发布于 2016-02-11 21:42:57
这就是我要做的:
json_decode将其转换为PHP对象
$obj = json_decode($json);var_dump($obj)进行调试,这将为您提供如下内容:
对象(StdClass)1公共‘数据’=>数组(size=3) 0 =>对象(StdClass)2公共'ID‘=>字符串'0450’(length=4)公共'FirstName‘=>字符串’×™×ר××ב(length=16)公共'LastName’=>字符串‘×’×××x‘(length=12)公共'SchoolID’=>字符串'17‘(length=2 ))公共'UID‘=>字符串'0001’(length=4)公共'TeacherID‘=>字符串'26’(length=2) 1 => object(stdClass)3公共'ID‘=>字符串'0017’(length=4)公共'FirstName‘=> string’××动感×LastName×LastName××ב(length=14)公共'LastName’=>字符串‘×××’(length=6)公共'SchoolID‘=>字符串'17’(length=2)公共'UID‘=>字符串'0017’(length=4)公共'TeacherID‘=>字符串'24’(length=2) 2 => object(stdClass)4公共'ID‘=> string '0018’(length=4)公共'FirstName‘=> string’דבגבלג(length=17) (length=17)公共'LastName‘=> string’יש×>ר‘(length=8)公共'SchoolID’=> string '17‘(length=2) public 'UID’=> string '0018‘(length=4) public 'TeacherID’=> string '24‘(length=2)->对象运算符访问数据:
$row{ var_dump($row->ID);var_dump($row->FirstName);var_dump($row->LastName);//.}发布于 2016-02-11 21:20:26
像这样的东西应该管用。
<?php
// Json_decode the file contents
$file_data = json_decode(trim($file_text));
// var_dump this $file_data and let us know what you get
// Select the array potion 'data'
$data = $file_data->data;
// var_dump this $data and let us know what you get
foreach ($data as $obj) {
...display code...
}
?>为$file_data和$data添加一些$file_data()语句,以查看您是否真正获得了所期望的数据。存储数据的方式可能存在一些编码/格式化问题。你知道是什么处理和存储了这些数据吗?
关于编码,我做了一点研究。如果我没有弄错,您有需要转换为Unicode文本来显示的Unicode实体。康涅夫是很好的转换,但我不知道原始编码是什么。是日语写的吗?
$text = "\u05d0\u05e8\u05e8\u05d9\u05d9\u05e0\u05d3";
echo iconv('UCS-2BE', 'UTF-8', $text);产生
屵〵搰屵〵攸屵〵攸屵〵搹屵〵搹屵〵攰屵〵搳
或者..。从How to decode Unicode escape sequences like "\u00ed" to proper UTF-8 encoded characters?上试试这个
$str = "\u05d0\u05e8\u05e8\u05d9\u05d9\u05e0\u05d3";
$str = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) {
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
}, $str);
echo $str."\n\n";产生看起来像希伯来人的字符:
ארריינד
如果这是正确的,那么在显示之前编写一个函数来解码您的数据。
https://stackoverflow.com/questions/35350090
复制相似问题