You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP生成JSON数组需在逗号后加空格以适配Google Maps标记

解决JSON数组逗号后自动添加空格的问题

方案1:使用json_encode的格式化参数

PHP的json_encode函数提供JSON_PRETTY_PRINT常量,可直接生成带缩进和空格的格式化JSON,自动在逗号后添加空格,完全满足需求:

<?php
$sql5 = "SELECT * FROM Building";
$result5 = $connect->query($sql5);
$emparray = array();
while($row5 = $result5->fetch(PDO::FETCH_ASSOC)) {
    $coordLat = floatval($row5['Building_lat']);
    $coordLng = floatval($row5['Building_lng']);
    $emparray[] = array( $row5['Building_name'] , $coordLat , $coordLng , $row5['Building_period'] );
}
// 加入JSON_PRETTY_PRINT参数生成带空格的格式化JSON
$jsonstring= json_encode($emparray, JSON_PRETTY_PRINT);
?>

生成的JSON示例:

[
    [
        "Hotel Montgomery",
        50.850000000000001,
        4.339999999999999,
        "June"
    ]
]

输出到JavaScript后,逗号后自带空格,无需手动修改。

方案2:字符串替换(适用于不需要换行的场景)

如果只需要逗号后加空格、不需要换行格式,可以用正则替换json_encode的结果,确保只替换JSON结构中的逗号(不影响字符串内的逗号):

$jsonstring= json_encode($emparray);
// 替换非引号包裹的逗号,添加空格
$jsonstring = preg_replace('/(?<!")(,)(?!")/', ', ', $jsonstring);

额外提示:检查JavaScript索引错误

标准JSON语法中,逗号后有无空格不影响JavaScript解析,你遇到的问题大概率是addMarker函数的索引错误:你的数组结构是[名称, 纬度, 经度, 周期],但原代码中索引使用完全错位,修正后的函数如下:

function addMarker(marker) {
    var category = marker[3]; // 对应Building_period
    var title = marker[0]; // 对应Building_name
    var pos = new google.maps.LatLng(marker[1], marker[2]); // 纬度是marker[1],经度是marker[2]
    var content = marker[0];

    marker1 = new google.maps.Marker({
        title: title,
        position: pos,
        category: category,
        map: map
    });

    gmarkers1.push(marker1);

    google.maps.event.addListener(marker1, 'click', (function (marker1, content) {
        return function () {
            console.log('Gmarker 1 gets pushed');
            infowindow.setContent(content);
            infowindow.open(map, marker1);
            map.panTo(this.getPosition());
            map.setZoom(15);
        }
    })(marker1, content));
}

内容的提问来源于stack exchange,提问作者Laurent Jacobs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:30:57