如何在php中解析带有数组的JSON字符串
I am sending a JSON string in php post request. JSON string look like this:
{"mobile":"0000000000","otp":"970996", "items":[{"pid":"12", "vid":"20"},{"pid":"13", "vid":"2"}]}
At server side i want to get mobile, otp and pid and vid for all items.
I am getting mobile number from this:
$data = json_decode(file_get_contents('php://input'), true);
//print_r($data);
echo $data["mobile"];
But when i am trying to get pid and vid like this:
foreach($data["items"] as $mydata){
echo $mydata->pid;
}
i am getting error: Trying to get property of non-object.
How to solve this?
Edit:
If there is any better way to parse JSON in php, please suggest that also.
我在php post请求中发送一个JSON字符串。 JSON字符串如下所示: p>
{“mobile”:“0000000000”,“otp”:“970996”,“items”:[{“pid”:“12” ,“vid”:“20”},{“pid”:“13”,“vid”:“2”}}}
code> pre>
在服务器端i 想要获得所有项目的移动,otp和pid以及vid。 p>
我从中获取手机号码: p>
$ data = json_decode(file_get_contents('php:// input'),true);
// print_r($ data);
echo $ data [“mobile”];
code> pre>
但是当我想要像这样获得pid和vid时: p>
foreach($ data [“items”]为$ mydata){
echo $ mydata-> pid;
}
code> pre>
我收到错误:尝试获取非对象的属性。 p>
如何解决这个问题? p>
编辑: p>
如果有更好的方法来解析php中的JSON,请同时提出建议。 p >
div>
Just access pid
with:
$mydata['pid']
You pass true
as a second argument for json_decode
When TRUE, returned objects will be converted into associative arrays.
So you have to treat is as an array, not an object.