去掉json的双引号_删除JSON结果中的双引号?

My code is as follows

foreach($location_total_n_4 as $u=> $v) {

$final_location_total_4 .= "[".$u.",".$v."],";

}

I'm sending these values as JSON.

echo json_encode(array("location"=>"$final_location_total_4" ));

Here's how my response object looks:

{

"location": "[1407110400000,6641],[1407196800000,1566],[1407283200000,3614],"‌​

}

I'm creating graph on success with ajax.so I need it like this,

{

"location": [1407110400000,6641],[1407196800000,1566],[1407283200000,3614],

}

Can anyone help me to solve this?

解决方案

The problem is that your location value is non-properly serialized value. It's definitely appropriate to fix on the server-side (looks like one's trying to implement their own json_encode and failing), but it's possible to fix on the client-side as well. One possible approach:

var location = JSON.parse('[' + response.location.slice(0,-1) + ']');

Demo. slice(0,-1) removes the trailing comma, then the contents are wrapped into brackets, turning them into a proper JSON (at least for the given dataset).

As for server-side, turned out I was right: this code...

foreach($location_total_n_4 as $u=> $v) {

$final_location_total_4 .= "[".$u.",".$v."],";

}

echo json_encode(array('location' => "$final_location_total_4"));

... is wrong both tactically (always adding a trailing comma) and strategically (one shouldn't solve the task already solved by the language itself). One possible replacement:

$locations = array();

foreach ($location_total_n_4 as $u => $v) {

$locations[] = array($u, $v);

}

echo json_encode(array('location' => $locations));

The bottom line: never attempt to implement your own serialization protocol unless you're really know what're you doing.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值