Comprehensive analysis of Json in PHP_PHP tutorial

WBOY
Release: 2016-07-13 10:33:25
Original
888 people have browsed it

Everyone should be familiar with JSON (JavaScript Object Notation), which is a lightweight data exchange format. Easy for humans to read and write. It is also easy for machines to parse and generate. It is based on JavaScript Programming Language, a subset of Standard ECMA-262 3rd Edition - December 1999. JSON uses a completely language-independent text format, but also uses conventions similar to the C language family (including C, C++, C#, Java, JavaScript, Perl, Python, etc.). These properties make JSON an ideal data exchange language.

JSON is constructed from two structures:

A collection of name/value pairs. In different languages, it is understood as an object, a record, a struct, a dictionary, a hash table, a keyed list, or an associative array. array). An ordered list of values. In most languages, it is understood as an array.

PHP’s serialize is to serialize variables and return a string expression with variable type and structure. Speaking of which, both embody a data structure in the form of a string, so there are What's the difference.

Let’s start with JSON and look at a simple example.

Procedure 1:

var test = {"Name":"Peter","Age":20};
document.write(test.Name + ": " + test.Age);
Copy after login

Display results:

Peter: 20
Copy after login

In the variable test, {"Name":"Peter","Age":20} is an object with 2 elements (it feels like an array in PHP): Name is Peter and Age is 20.

Of course it can get more complicated:

Procedure 2:

var test = {"User":{"Name":"Peter","Age":20},"Company":"FORD"};
document.write(test.User.Name + ": " + test.Company);
Copy after login

Display results:

Peter: FORD
Copy after login

In this example, the User element contains Name and Age.

If you want to reflect multiple Users, you need to use an array. Different from the "{}" of the object, the array uses "[]".

Procedure 3:

var test = [
                 {"User":{"Name":"Peter","Age":20},"Company":"FORD"},
                 {"User":{"Name":"Li Ming","Age":20},"Company":"Benz"}
			];
document.write(test[1].User.Name + ": " + test[1].Company);
//或者使用:document.write(test[1]["User"]["Name"] + ": " + test[1]["Company"]);
Copy after login

Display results:

Li Ming: Benz
Copy after login

Through the above simple example, some complex data can be transferred through a string, and it is indeed much more convenient when combined with Ajax.

Let’s take a look at the role of PHP’s serialize function.

Procedure 4:

$arr = array
       (
          'Peter'=> array
          (
            'Country'=>'USA',
            'Age'=>20
          ),
          'Li Ming'=> array
          (
             'Country'=>'CHINA',
             'Age'=>21
          )
        );
$serialize_var = serialize($arr);
echo $serialize_var;
Copy after login

Display results:

a:2:{s:5:"Peter";a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;}s:7:"Li Ming";a:2:{s:7:"Country";s:5:"CHINA";s:3:"Age";i:21;}}
Copy after login

This result looks more complicated than JSON, but it is actually very simple. It describes some data types and structures.

Take a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;} as an example:

a:2 indicates that this is an array with two elements, s:7:"Country";s:3:"USA"; is the first element, s:7 indicates that there are 7 elements A string of characters, followed by i:20; it should also be guessed as an integer (integer) 20.

Look at this example again:

Procedure 5:

class test
{
    var $var = 0;
    function add(){
      echo $var+10;
    }
}
$unserialize_var = new test;
$serialize_var = serialize($unserialize_var);
echo $serialize_var;
$unserialize_var = null;
$unserialize_var = unserialize($serialize_var);
$unserialize_var->add();
Copy after login

Display results:

O:4:"test":1:{s:3:"var";i:0;}
10
Copy after login

As can be seen from this example, serialize saves both the type and structure of the data, and the variables after unserialized can still use the add() method.

So are there any connection between PHP and JSON? Friends who are familiar with PHP should know that PHP5.2.0 has set JSON extension as the default component, which means that we can perform JSON operations in PHP, and its functions are json_encode and json_decode.

Procedure 6:

$arr = array
       (
          'Name'=>'Peter',
          'Age'=>20
       );
$jsonencode = json_encode($arr);
echo $jsonencode;
Copy after login

Display results:

{"Name":"Peter","Age":20}
Copy after login

This result is the same as the test value in Example 1. Use json_encode to convert the variables in PHP into JSON characters and output the expression.

Let’s take a look at the usage of json_decode.

Procedure 7:

$var = '{"Name":"Peter","Age":20}';
$jsondecode = json_decode($var);
print_r($jsondecode);
Copy after login

Display results:

stdClass Object ( [Name] => Peter [Age] => 20 )
Copy after login

This indeed verifies that {"Name":"Peter","Age":20} is an object in JSON, but it can also be converted to an array in PHP. In json_decode, set the ASSOC parameter to True is enough.

Procedure 8:

$var = '{"Name":"Peter","Age":20}';
$jsondecode = json_decode($var,true);
print_r($jsondecode);
Copy after login

Display results:

Array ( [Name] => Peter [Age] => 20 )
Copy after login

In addition, it should be noted that JSON is based on Unicode format, so for Chinese operations, it must be converted into UTF-8 format.

Through the above examples, I believe everyone has a preliminary understanding of serialize and json_encode of JSON and PHP. By combining PHP, Javascript, JSON and Ajax, powerful data interaction functions can be completed.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/752486.htmlTechArticleEveryone should be familiar with JSON (JavaScript Object Notation), which is a lightweight data exchange format. Easy for humans to read and write. It is also easy for machines to parse and generate. It's based on...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!