如何在没有双引号的情况下回显json数据值

时间:2016-05-05 03:23:46

标签: php json

我创建了一个Web服务,它返回如下的json数据。 [{ “LAT”: “6.8658”, “经度”: “79.8744”}]

但实际上我需要跟随。 [{ “LAT”:6.8658, “LNG”:79.8744}]

我的php代码如下

$location_data= $this->db->query("SELECT lat,lng FROM jobs WHERE job_code='JO34656'")->result_array();

echo json_encode($location_data);

4 个答案:

答案 0 :(得分:4)

使用JSON_NUMERIC_CHECK,将numeric strings编码为numbers

  

此选项是从5.3.3添加的。

$location_data= $this->db->query("SELECT lat,lng FROM jobs WHERE job_code='JO34656'")->result_array();

echo json_encode($location_data, JSON_NUMERIC_CHECK); // [{"lat":6.8658,"lng":79.8744}]

更多关于:JSON_NUMERIC_CHECK

答案 1 :(得分:2)

只需将所有元素投射到floatval

$location_data = $this->db->query("SELECT lat,lng FROM jobs WHERE job_code='JO34656'")->result_array();
$data = json_encode(array_map(function($e){
    return array_map('floatval', $e);
}, $location_data));

或者只选择您想要投放的列:

$location_data = json_encode(array_map(function($e){
    foreach($e as $key => &$loc) {
        if(in_array($key, array('lat', 'lng'))) {
            $loc = floatval($loc);
        }
    }
    return $e;
}, $location_data));

答案 2 :(得分:0)

也许使用str.replace("Original", "Replacement");语法?

var test = "\"TEST\"";
test.replace(/\"/g, ""));

"TEST" - > TEST

答案 3 :(得分:-2)

您可以创建一个视图模型,用于在创建时转换值。