Nikunj V
Nikunj V

Reputation: 293

PHP - JSON returning null with different objects

I have two different set of json object as follows.

'{
  "eventos": [
     {"Event":"QueueParams","Queue":"755","Max":"0","Strategy":"fewestcalls","Calls":"0","Holdtime":"19","TalkTime":"491","Completed":"89","Abandoned":"4","ServiceLevel":"0","ServicelevelPerf":"0.0","Weight":"0","ActionID":"4152750549"},
     {"Event":"QueueMember","Queue":"755","Name":"PJSIP/428","Max":"","Location":"PJSIP/428","StateInterface":"PJSIP/428","Membership":"dynamic","Penalty":"0","CallsTaken":"2","LastCall":"1607350581","Status":"2","Paused":"0","ActionID":"4152750549"},
  ]
}';

$response = json_decode($response);
dd($response);

The problem is, it returns null output.

I want to get json result displayed with different objects. What changes are needed here so that I can display output of different objects ?

Upvotes: 0

Views: 33

Answers (2)

bpanatta
bpanatta

Reputation: 499

Your JSON have a syntax error. Just remove the comma right after the last { ActionID":"4152750549"},.

It have to be like this:

'{
  "eventos": [
     {"Event":"QueueParams","Queue":"755","Max":"0","Strategy":"fewestcalls","Calls":"0","Holdtime":"19","TalkTime":"491","Completed":"89","Abandoned":"4","ServiceLevel":"0","ServicelevelPerf":"0.0","Weight":"0","ActionID":"4152750549"},
     {"Event":"QueueMember","Queue":"755","Name":"PJSIP/428","Max":"","Location":"PJSIP/428","StateInterface":"PJSIP/428","Membership":"dynamic","Penalty":"0","CallsTaken":"2","LastCall":"1607350581","Status":"2","Paused":"0","ActionID":"4152750549"}
  ]
}';

For any Json problem, run a json_last_error() right after the decode.

Upvotes: 1

0stone0
0stone0

Reputation: 43894

For example, to show each ActionID;

<?php
    $rawJson = '{"eventos": [{"Event":"QueueParams","Queue":"755","Max":"0","Strategy":"fewestcalls","Calls":"0","Holdtime":"19","TalkTime":"491","Completed":"89","Abandoned":"4","ServiceLevel":"0","ServicelevelPerf":"0.0","Weight":"0","ActionID":"4152750549"}, {"Event":"QueueMember","Queue":"755","Name":"PJSIP/428","Max":"","Location":"PJSIP/428","StateInterface":"PJSIP/428","Membership":"dynamic","Penalty":"0","CallsTaken":"2","LastCall":"1607350581","Status":"2","Paused":"0","ActionID":"4152750549"} ] }';
    $json = json_decode($rawJson);

    $eventos = $json->eventos;

    foreach ($eventos as $event) {
        echo $event->ActionID . PHP_EOL;
    }

Note: There was an trailing comma (,) behind the last event object, I've removed it to make it valid JSON.

Try it online!

Upvotes: 1

Related Questions