beginner beginner - 1 month ago 6
JSON Question

How $.parseJSON() parses an array?

I get an array from mysql query in test.php

$rows =Array ( [0] => Array ( [name] => nikhil ) [1] => Array ( [name] => akhil ))


I convert it into json format string and echo it

$jsonstring = json_encode($rows);
echo $jsonstring;


OUTPUT :


[{"name":"nikhil"},{"name":"akhil"}]


I know this is still not in json format but it is an array(of json)

But now i can use
$.parseJSON
in
jquery.php


$.post("/test.php",function(r){var jsonobject = $.parseJSON(r);
for(var i=0;jsonobject[i];i++){
$("#userslist").append("<br>" + jsonobject[i].name);}


and it parse it properlly , and i can access this json object as well , but as we know

$.parseJSON()
converts only well formed json string into object. http://api.jquery.com/jquery.parsejson/


$.parseJSON(): Takes a well-formed JSON string and returns the resulting JavaScript value.


so how
$.parseJSON()
parse an array ? any ideas?

Answer

A JSON value can be:

  • A number;
  • A string;
  • The values null, true, or false;
  • An array of JSON values;
  • An object consisting of string property names and JSON values for each.

So

[{"name":"nikhil"},{"name":"akhil"}]

is a perfectly good JSON value. It's an array containing two values, each of which are objects with a single property having a string value.