从json字符串中取出对象不能在php中工作

时间:2016-03-01 12:17:55

标签: php json

{
    "tripRoute": [{
        "lng": 78.92939102,
        "lat": 22.0533782
    }, {
        "lng": 78.92939102,
        "lat": 22.0533782
    }],
    "bookingId": 195
}

这个字符串格式的json obj我从android发送到php服务器。在PHP服务器字符串正确打印。但当我试图得到" lng" " bookingId" from String是show null值。这是我的PHP代码。

//错误" **行"

<?php
    include('db_connection.php'); 

    $json= $_REQUEST['tripRoute'];
    $array = json_decode($json,true);

**  $data = $array['tripRoute'][0]['lng'];  // showing Null 


**  $flag['TripPathcode']= $array['bookingId'];   // showing null

    print(json_encode($flag));


?>

还有一个问题 - 请参阅json字符串 - &#34; lng&#34;:78.9293102,&#34; lat&#34;:22.0533。 那里的数字是78.9293和22.0533之间的数字是&#34; &#34 ;.我看到其他字符串有整数和双值也介于&#34; &#34 ;.这会产生一些问题吗?

2 个答案:

答案 0 :(得分:1)

您需要使用json_decode()将JSON字符串转换为本机PHP数据类型。

默认情况下,您的数据将转换为stdClass对象而不是数组,除非您使用json_decode($string, TRUE);的第二个参数,但不需要将完美的对象转换为数组。

<?php
$js = '{

    "tripRoute": [{
        "lng": 78.92939102,
        "lat": 22.0533782
    }, {
        "lng": 78.92939102,
        "lat": 22.0533782
    }],
    "bookingId": 195

}';

$obj = json_decode($js);

print_r($obj);


echo $obj->tripRoute[0]->lng;
echo $obj->bookingId;

答案 1 :(得分:1)

我得到了解决方案.. 我的json打印像这样 - {\\&#34; \\ abc&#34;:\ [{&#34; sdf&#34;:.......}] }

所以我用 $ json = stripslashes($ _ REQUEST [&#39; tripRoute&#39;]);

这解决了我的问题。谢谢你的回复。