我试图从mysql到json格式的空间数据的结果,我得到这个输出相同的行字符串:
`[[-105.00341892242432, 39.75383843460583],[-105.0008225440979, 39.751891803969535]] `
但是我需要得到这个:
`[{" coordinates":[[-105.00341892242432, 39.75383843460583], [-105.0008225440979, 39.751891803969535]]}`
有谁能帮我一下吗?代码如下:
<?php
require_once("caroom_db.php");
header("Content-Type: application/json");
//$l1 = '';
$ll1 = array();
//$lt = array();
$json_response = array();
$ll =0;
//echo $l;
$jsonData = '[';
$num_point="SELECT NumPoints(geo_type) FROM line_park WHERE id='2'";
$query = mysqli_query($cn, $num_point) or die (mysqli_error($cn));
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$ll = $row["NumPoints(geo_type)"];
//echo $ll;
}
for ($i=1; $i<=$ll; $i++) {
$l1="SELECT X(PointN(geo_type,$i)), Y(PointN(geo_type,$i)) FROM line_park";
$query = mysqli_query($cn, $l1) or die (mysqli_error($cn));
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$ll1[0] = $row["X(PointN(geo_type,$i))"];
$ll1[1] = $row["Y(PointN(geo_type,$i))"];
array_push($json_response,$ll1);
}
}
echo json_encode($json_response);
fclose($cn);
?>
提前感谢!
既然我的评论解决了你的问题,我就把它作为一个答案发布出来,这样你就可以接受了。尝试使用php.net/manual/en/function.json-encode.php将数组转换为json,将您的值推入数组会更简单。
添加coodrinates
只需执行string concat
$jsonData = json_encode($json_response);
$jsonData = '{"coordinates":' . $jsonData . '}';
使用另一个数组键。例如,
json_encode(array('coordinates' => $response));