<?php
$data = file_get_contents("php://input");
$json = json_decode($data);
mysql_connect("localhost", "root", "12345") or die("Could not connect");
mysql_select_db("db_shuttlebus") or die("Could not select database");
foreach($json as $obj){
echo $obj->_id;
}
?>
萤火虫 JSON 字符串
这只是 1 条记录 JSON 字符串 {"_id":2,"Route_Seq":2,"Location_Name":"ABC","Route_LocationID":6,"Route_ID":"1","id":null}
这是 2 条记录,工作正常
[{"_id":2,"Route_Seq":1,"Location_Name":"perak","Route_LocationID":"6","Route_ID":"1","id":null},{"_id":1,"Route_Seq":2,"Location_Name":"TRY","Route_LocationID":"1","Route_ID":"1","id":null}]
更新:当json只有1条记录时,它就不会循环,
如果超过 1 条记录,那么它工作正常,为什么?
很简单:两次都返回一个 JSON 数组。 foreach
遍历数组,而您没有给它一个数组。包含一个元素的数组没有错。
一条记录的 JSON 应如下所示:
[{"_id":2,"Route_Seq":2,"Location_Name":"ABC","Route_LocationID":6,"Route_ID":"1","id":null}]
如果无法更改返回的数据的形式,请使用函数is_array
在循环之前对其进行测试,并将一条记录作为特殊情况处理。
具体来说,您可以将底部的循环替换为如下所示的内容:
if(is_array($json)) {
foreach($json as $obj){
echo $obj->_id;
}
} else {
echo $json->_id;
}