我有这个字符串:
{\"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变量中。有人可以告诉我如何修复我得到的错误并将值放入变量吗?
谢谢, 亚历
答案 0 :(得分:5)
...试
foreach($markers as $marker)
{
$some_string .= '('.$marker->lat.','.$marker->lng.')';
}
结果...
(37.7903882619,-122.460479968)(37.7896082315,-122.463441127)
答案 1 :(得分:3)
foreach($markers as $key => $value)
{
// $value is object with lat and lng properties
$some_string = $some_string.' ( lat:'.$value->lat.' ) ';
}
答案 2 :(得分:0)
这也让我感到困惑,为什么json_decode()会返回封装在对象中的数据?
事实证明,Javascript中的所有数组都被视为对象,因此json_decode()将它们作为PHP stdClass的对象返回。尝试在$ marker上执行print_r()以查看它的结构。
答案 3 :(得分:0)
这里有效
var json = JSON.parse(<?php echo "'" . stripslashes($_POST['json']) . "'" ?>);