Antegeia
Antegeia

Reputation: 269

Error while trying to read posted json data in php

I have the following problem. When i am trying to read some json data that are posted from an html page, i'm facing with the following error "Trying to get property of non-object on line".

Jquery script to create the json

var json = {"data":[]};

json.data.push({serialNumber: $serialNumber, xreosi: $xreosiToPost,
forma: $forma, apolia: $apolia});

Jquery for posting to php

$.post("page.php",{jsonData: JSON.stringify(json),
customer: $("#cusID").val()},function(data){});

PHP file

  $json = json_decode($_POST['jsonData']);
  foreach($json as $value){
    $serialNumber = $value->serialNumber;
    echo $serialNumber;
  }

Thanks in advance.

Upvotes: 0

Views: 51

Answers (2)

hindmost
hindmost

Reputation: 7195

json_decode without second parameter returns result as php object. You have to pass true as second parameter. Also your data are in $json['data'], not $json:

$json = json_decode($_POST['jsonData'], true);
foreach($json['data'] as $value) {
    $serialNumber = $value->serialNumber;
    echo $serialNumber;
}

Upvotes: 0

viktor.svirskyy
viktor.svirskyy

Reputation: 479

Thereafter:

var json = {"data":[]};

json.data.push({serialNumber: $serialNumber, xreosi: $xreosiToPost,
forma: $forma, apolia: $apolia});

You have: Object[data][0] = array('serialNumber' => ...);

Need:

$json = json_decode($_POST['jsonData'][0]); 

or

$json = json_decode($_POST['jsonData']);

foreach($json as $row){
  foreach($row as $value) {
    $serialNumber = $value->serialNumber;
    echo $serialNumber;
  }
}

Upvotes: 1

Related Questions