JSON字符串无法解码

时间:2017-02-07 14:47:04

标签: php android json

我有一个PHP脚本,它通过hashmap从Android应用程序接收JSON字符串 这是名为obj的json字符串:

{
"total": "25",
"buyer_id": "1",
"order": [
    { "id": "1", "name": "cosmo" },
    { "id": "5", "name": "Choco" },
    { "id": "22", "name": "gogo" }
]
}

这是脚本

$json = $_POST['obj'];
$data = json_decode($json,true);

//initialize the variables to the json object param
$buyer_id = $data->buyer_id;
$total = $data->total;

//insert the order in the orders table
$sql_orders = "insert into orders(buyer_id,total) values 
('$buyer_id','$total')";
$res = mysqli_query($con,$sql_orders);

在我看来,json_decode不起作用,因为变量为null;当我echo任何变量时:

echo $data.total;

输出为NULL。

1 个答案:

答案 0 :(得分:0)

这是因为您提供true作为json_decode()的第二个参数;它会导致对象转换为关联数组。因此,解除引用运算符(->)将无法在$data上运行。您应该尝试在不指定第二个参数的情况下调用json_decode()

注意:如果您在JSON中使用数值,最好这样使用它们:

{
    "total": 25,
    "buyer_id": 1,
    "order": [
        {
            "id": 1,
            "name": "cosmo"
        }, {
            "id": 5,
            "name": "Choco"
        }, {
            "id": 22,
            "name": "gogo"
        }
    ]
}

它的可读性更高。