When trying to access an API the JSON array must be parsed like this
{"item":[{"id":"123456", "name":"adam"}]}   But when i'm doing the following code
$data = array("item" => array("id" => "123456", "name" => "adam")); echo json_encode($data);   it returns the json array without squared brackets as follows
{"item":{"id":"123456","name":"adam"}}   I've spent hours trying to figure out how to fix this and just can't think of a solution
Curly braces hold objects and each name is followed by ':'(colon), the name/value pairs are separated by , (comma). Square brackets hold arrays and values are separated by ,(comma).
JSON (JavaScript Object Notation) This makes JSON human-readable. JSON is easier to parse than XML. This is because JSON uses a fixed set of delimiters. These delimiters include curly braces ({ }), commas (,), colons (:) and square brackets ([]).
' { } ' used for Object and ' [] ' is used for Array in json.
A JSON object contains zero, one, or more key-value pairs, also called properties. The object is surrounded by curly braces {} . Every key-value pair is separated by a comma. The order of the key-value pair is irrelevant.
You need to wrap things in another array:
$data = array("item" => array(array("id" => "123456", "name" => "adam")));   This will be more understandable if we use the equivalent PHP 5.4 array syntax:
$data = [ "item" => [ ["id" => "123456", "name" => "adam"] ] ];   Compare this with the JSON:
        { "item":   [ {"id":"123456", "name":"adam"      } ] }   The only thing to explain is why one of the PHP arrays remains an array [] in JSON while the other two get converted to an object {}. But the documentation already does so:
When encoding an array, if the keys are not a continuous numeric sequence starting from 0, all keys are encoded as strings, and specified explicitly for each key-value pair.
Before reading this post, I had this:
echo json_encode($data);
After reading this post:
echo json_encode(array($data));  Brackets appeared at the start and end of the JSON object.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With