Reputation: 18639
I have a JSON string that has 1-n numbers of lat/lng records. It looks something like this:
{\"lat\":37.790388261934424,\"lng\":-122.46047996826172},{\"lat\":37.789608231530124,\"lng\":-122.46344112701416}
What is a good way to parse this to get lat/lng values loop? And do the escaped double quotes impact the parsing?
Thanks, Alex
Upvotes: 2
Views: 20904
Reputation: 19380
$ll = '[{"lat":37.790388261934424,"lng":-122.46047996826172},{"lat":37.789608231530124,"lng":-122.46344112701416}]';
$ll = json_decode($ll);
print_r($ll);
Prints...
Array
(
[0] => stdClass Object
(
[lat] => 37.7903882619
[lng] => -122.460479968
)
[1] => stdClass Object
(
[lat] => 37.7896082315
[lng] => -122.463441127
)
)
Upvotes: 6
Reputation: 145482
In your case it's probably best to use:
$array = json_decode(stripslashes("[$input_string]"), 1);
Note that you will lose some precision on your float values in PHP.
Upvotes: 3
Reputation: 53861
Use json_decode.
You will need to unescape quotes first; just use
$unescaped_data = str_replace('\"','"',$data)
Upvotes: 5