Conversion between PHP Array and Json

quote
http://www.cnblogs.com/xmphoenix/archive/2011/05/26/2057963.html

The reason why Json is used is often because of the data interaction between the program and the JS function when using the ajax object. Because JS doesn't know arrays in PHP, and PHP doesn't know arrays or objects in JS. Json solves this problem very well.

Introduction to Json

JSON (JavaScript Object Notation) is a lightweight data exchange format. It is based on a subset of JavaScript, which means that JavaScript can read Json directly, which is very convenient.

The specific form of Json is:
1. Object

An object is an unordered collection of "'name/value' pairs". An object begins with "{" (left bracket) and ends with "}" (right bracket). Each 'name' is followed by a ':' (colon); 'name/value' pairs are separated by a ',' (comma).

For example: {"username": "Eric","age":23,"sex": "man"}

Code example:
<script type="text/javascript">   
function getUser()
{
    var   user = {
    "username": "Eric",
    "age":23,
    "family": {"mother":"Marry","father":"Alon","brother":"Tom"}
    };   
    alert( user.username );   
    alert( user.age );   
    alert(user.family.brother);
}   
getUser();   
</script>

2. Arrays

Arrays are ordered collections of values. An array starts with "[" (left bracket) and ends with "]" (right bracket). Use "," (comma) to separate the values.

For example: ["Eric",23, "man"]

Code example:
<script type="text/javascript">
   function getArray()   {
      var arr = ["Jarry",23, ["www.xiaophper.com","[email protected]"]];
      alert(arr[0]);   
      alert(arr[1]);   
      alert(arr[2][0]);   
      alert(arr[2][1]);
   }   
   getArray();   
</script>

Note: Objects and arrays are called differently in JS. Objects are called with ".", and arrays are called with subscripts [0] and [1]. Also note that values ​​of type string should be enclosed in quotes when passing Json strings. Converting Arrays to Json in PHP Powerful PHP already provides built-in functions: json_encode() and json_decode(). It is easy to understand, json_encode() is to convert the PHP array to Json. Instead, json_decode() converts Json to a PHP array. E.g:






$array = array("name" => "Eric","age" => 23);
echo json_encode($array);


The program will print out: {"name":"Eric","age":23}

Look at the following example:


$array = array(0 => "Eric", 1 => 23);   
echo json_encode($array);


The program will print out: ["Eric", 23]
As can be seen from the above two examples, if the keys of the PHP array are all numbers, then json_encode() returns a Json in the form of an array, if the keys of the PHP array are all strings. Then json_encode() will return a Json in the form of an object. just said. The two calls in js are different.
In fact, as long as there is a key in the form of a string in the keys of the PHP array, then json_encode() will return Json in the form of an object. This is not correct. Because, although there is no error in the PHP code, if such a Json is passed to a JS function, JS will treat this Json as an object, and it is impossible for an object to have a number as a property name. That is, JS doesn't know what this is: user.0.username (with the number zero in the middle)

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326598382&siteId=291194637