需要将mysql数据以某种格式打印到json中

Posted

技术标签:

【中文标题】需要将mysql数据以某种格式打印到json中【英文标题】:Need to print mysql data in to json in a format 【发布时间】:2016-07-27 18:36:23 【问题描述】:

我正在尝试使用 phpmysql 数据输入到 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。

【问题讨论】:

【参考方案1】:

当然,您需要先分解这部分数据,因为它是一个字符串。您需要将它们设置为包含两个浮点值的数组单元。

全部获取后,您需要进行一些操作。

您可以先在该字符串上使用explode,。这样就变成了一个数组[]。但这并没有结束,分解后的元素仍然是字符串,因此您可以使用arrray_map 映射出所有带有floatval 的元素。

总而言之,它看起来就像这样:

$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

【讨论】:

我也在想同样的事情。我认为您可以像这样在一行中做到这一点:echo json_encode(array('results' => array_map(function($row) return array_map('floatval', explode(',' $row['latlon'])); , $rows))); @Ohgodwhy 哈哈,一个线性数组函数咒语,当然,它总是有一个 您的操作成功了。谢谢你。我得到了我想要的。 @AseshaGeorge 在 mysql 中使用 LIMIT OFFSET LIMIT OFFSET 没问题,但请看页面底部显示所有记录数和页数和每页记录数。请参阅链接 sbadb.herokuapp.com/v1/bizs 。见下元

以上是关于需要将mysql数据以某种格式打印到json中的主要内容,如果未能解决你的问题,请参考以下文章

如何以漂亮的打印风格在 JSON 中编写数据框?

如何以 JSON 格式转换 debezium 消息,以便可以将其加载到 Redshift

如何将json数据格式化输出到控制台

如何使用 Django ORM 将 JSON 文件中的数据加载到 MySQL 实例中?

以 JSON 格式存储多语言数据 (MySQL)

json文件数据转存mysql数据工具,安利一波