Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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

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

1 Answer

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...