Как разобрать строку JSON с помощью PHP - PullRequest
2 голосов
/ 03 апреля 2011

У меня есть строка JSON, содержащая 1-n номеров записей lat / lng. Это выглядит примерно так:

{\"lat\":37.790388261934424,\"lng\":-122.46047996826172},{\"lat\":37.789608231530124,\"lng\":-122.46344112701416}

Какой хороший способ разобрать это, чтобы получить цикл значений lat / lng? И влияют ли утерянные двойные кавычки на разбор?

Спасибо, Alex

Ответы [ 4 ]

5 голосов
/ 03 апреля 2011
$ll = '[{"lat":37.790388261934424,"lng":-122.46047996826172},{"lat":37.789608231530124,"lng":-122.46344112701416}]';
$ll = json_decode($ll);
print_r($ll);

Печать ...

Array
(
    [0] => stdClass Object
        (
            [lat] => 37.7903882619
            [lng] => -122.460479968
        )

    [1] => stdClass Object
        (
            [lat] => 37.7896082315
            [lng] => -122.463441127
        )

)
5 голосов
/ 03 апреля 2011

Использовать json_decode.

Сначала вам нужно будет удалить кавычки;просто используйте

$unescaped_data = str_replace('\"','"',$data)
3 голосов
/ 03 апреля 2011

В вашем случае, вероятно, лучше использовать:

$array = json_decode(stripslashes("[$input_string]"), 1);

Обратите внимание, что вы потеряете некоторую точность в значениях с плавающей точкой в ​​PHP.

1 голос
/ 03 апреля 2011

JSON_decode и удаление кавычек

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...