Разбор JSON в PHP «stdClass не удалось преобразовать в строку»

У меня была эта строка:

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

Затем, благодаря помощи StackOverflowers, я сделал это, чтобы удалить косые черты:

 $markers = stripslashes($markers); 

Затем я попытался добавить внешние скобки, которые, по-видимому, необходимы для функции декодирования

 $markers = json_decode('['.$markers.']'); 

Это был правильный путь? Затем я попытался сделать это:

 foreach($markers as $key => $value) { $some_string = $some_string.' ( '.$value.' ) '; } 

Какая игра мне эта ошибка:

 Object of class stdClass could not be converted to string 

Но мне действительно нужно извлечь значения lat / lng в переменные $ lat, $ lng. Может ли кто-нибудь предложить мне, как исправить ошибку, которую я получаю, и поместить значения в переменные?

Спасибо, Алекс

Пытаться…

 foreach($markers as $marker) { $some_string .= '('.$marker->lat.','.$marker->lng.')'; } 

Результат …

 (37.7903882619,-122.460479968)(37.7896082315,-122.463441127) 
 foreach($markers as $key => $value) { // $value is object with lat and lng properties $some_string = $some_string.' ( lat:'.$value->lat.' ) '; } 

Это тоже меня озадачило, почему json_decode () возвращает данные, инкапсулированные в объекты?

Оказывается, все массивы в Javascript считаются объектами, поэтому json_decode () возвращает их как объекты PHP stdClass. Попробуйте сделать print_r () на марке $, чтобы увидеть, как он структурирован.

Это работает

 var json = JSON.parse(<?php echo "'" . stripslashes($_POST['json']) . "'" ?>);