我创建了一个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);
答案 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)
您可以创建一个视图模型,用于在创建时转换值。