The reason why json is used in our PHP development is because ajax objects are often used to interact with data between programs and JS functions. Because JS does not recognize arrays in PHP, PHP does not recognize arrays or objects in JS. Json solves this problem very well.
Json Introduction
JSON (JavaScript Object Notation) is a lightweight data exchange format. It is based on a subset of JavaScript, which means JavaScript can read Json directly, which is very convenient.
The specific form of Json is:
1. Object
The object is an unordered "name/value" pair" gather. An object starts 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. Array
An array is an ordered collection of values. An array starts with "[" (left bracket) and ends with "]" (right bracket). Values are separated by "," (comma).
For example: ["Eric",23, "man"]
Code example:
<script type="text/javascript"> function getArray() { var arr = ["Jarry", 23, ["www.xiaophper.com", "wxyh_999@126.com"]]; alert(arr[0]); alert(arr[1]); alert(arr[2][0]); alert(arr[2][1]); } getArray(); </script>
Note: The two forms of objects and arrays are different when called in JS It’s the same, objects are called with “.”, and arrays are called with subscripts [0] and [1]. Also note that string type values must be enclosed in quotes when passing Json strings.
Convert array into Json in PHP
Powerful PHP has provided built-in functions: json_encode() and json_decode() . It's easy to understand, json_encode() is to convert PHP array into Json. On the contrary, json_decode() converts Json into a PHP array.
For example:
$array = array("name" => "Eric","age" => 23); echo json_encode($array);
The program will print out: {"name":"Eric","age":23}
Look at the following example again:
$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 an array form Json, if the keys of the PHP array are all strings . Then json_encode() will return Json in the form of an object. Just said it. The two calls in js are different.
In fact, as long as there is a key in the form of a string in the key of the PHP array, then json_encode() will return Json in the form of an object. This is not correct. Because, although no errors will occur in PHP code, if such Json is passed to a JS function, JS will treat this Json as an object, and it is impossible for an object to use numbers as attributes. famous. That is to say, JS does not know what this is: user.0.username (the middle is the number zero)
Similar reading:
Use of JSON in php with conversion
The above is the detailed content of PHP array convert json string. For more information, please follow other related articles on the PHP Chinese website!