0

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.

2
  • 2
    try echo $mydata["pid"]; Commented Feb 26, 2016 at 8:49
  • You've already used array syntax for 'mobile', why are you suddenly switching to use object syntax?! Commented Feb 26, 2016 at 8:50

1 Answer 1

1

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.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.