Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
328 views
in Technique[技术] by (71.8m points)

php - Remove double quotes in JSON result?

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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...