我正在尝试使用php将mysql数据输入到json中,然后在url中访问它。我在json中获取数据,但我需要一种格式。下面是我获取json的PHP代码。
header('Content-Type: application/json');
include('dbhconfig.inc.php');
$response = array();
$stmt = $dbh->prepare("SELECT * FROM venderlist");
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
{
$response['results'] = $rows;
}
echo json_encode($response);
我的json数据显示为吼叫
{"results":[{"id":"1","vendname":"Genie Events","address":"15, Lower Ground Floor, Lajpat Nagar, Delhi - 110024, Near National Park ","contact":"(91)-11-33437065","contact_o":"(91)-11-40666522","est":"2010","website":"www.genieevents.com","email":"","zip":"110024","latitude":"1.28525","longitude":"103.775464","latlon":"1.28525,103.775464","type":"organisers"},
首先,它没有以适当的结构显示。目前latlon显示为"latlon":"1.28525,103.775464"
,但我希望结果应为"latlon":[1.28525,103.775464]
如何将[]
添加到我的json变量名称latlon。
答案 0 :(得分:4)
如果当然,您需要首先分解该部分数据,因为它是一个字符串。您需要将它们设置为一个数组单元,其中包含两个浮点值。
获取所有内容后,您需要进行一些操作。
您可以先使用explode
对该字符串使用,
。这就成了一个数组[]
。但它并没有结束,爆炸元素仍然是字符串,因此您可以使用floatval
使用arrray_map
绘制所有元素。
总而言之,它看起来就像这样:
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($rows as &$r) { // with reference
// explode with comma, map with floatval
$r['latlon'] = array_map('floatval', explode(',', $r['latlon']));
}
echo json_encode(array('results' => $rows)); // json encode