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

我正在尝试使用 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。

【问题讨论】:

    标签: php mysql arrays json pdo


    【解决方案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 。见下元
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多