Four basic guidelines for JSON
1) Parallel data is separated by commas (,), 2) Mapping with (":") colon means 3) the set of data (data) in square brackets ("[]") is represented by 4) the set of Mappings (objects) are represented by braces ("{}")
1.json_decode ()
Json_decode
(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
json_decode-encoding a JSON-formatted string
Description
Mixed Json_decode (String $json [, bool $assoc])
Accept a JSON-formatted string and convert it to a PHP variable
Parameters
Json
String in JSON string format to decode.
Assoc
When this argument is TRUE, an array is returned instead of an object.
return value
Returns an object or if the optional assoc parameter are TRUE, an associative array is instead returned.
Example
Examples of Example #1 Json_decode ()
Copy the code code as follows:
<?php
$json = ' {' A ': 1, ' B ': 2, ' C ': 3, ' d ': 4, ' E ': 5} ';
Var_dump (Json_decode ($json));
Var_dump (Json_decode ($json, true));
?>
The example above will output:
Copy the code code as follows:
Object (StdClass) #1 (5) {
["a"] = Int (1)
["B"] = + int (2)
["C"] = + int (3)
["D"] = + int (4)
["e"] = + int (5)
}
Array (5) {
["a"] = Int (1)
["B"] = + int (2)
["C"] = + int (3)
["D"] = + int (4)
["e"] = + int (5)
}
Copy the code code as follows:
$data = ' [{' name ': ' A1 ', ' Number ': ' 123 ', ' Contno ': ', ' ' qqno ': '},{' Name ': ' A1 ', ' Number ': ' 123 ', ' Contno ': ' $ ', ' qqno ":" "},{" Name ":" A1 "," Number ":" 123 "," Contno ":" The "," Qqno ":"}] ';
echo Json_decode ($data);
The result is:
Copy the code code as follows:
Array ([0] = StdClass Object ([Name] = + a1 [number] = 123 [Contno] [qqno] = =) [1] = Stdclas s Object ([name] = + a1 [number] = 123 [Contno] [qqno] = = [2] = = StdClass Object ([name] = a 1 [number] [123] [Contno] [qqno] [] =]
It can be seen that the object is compiled by Json_decode (), and now output Json_decode ($data, true) try
Copy the code code as follows:
Echo Json_decode ($data, true);
Results:
Copy the code code as follows:
Array ([0] = = Array ([name] = + a1 [number] = 123 [Contno] [qqno] = = [1] = = Array ([name] =& Gt a1 [NUMBER] = 123 [Contno] [qqno] = [2] = = Array ([Name] + a1 [number] = 123 [Contno] => ; [qqno] =))
You can see an associative array of Json_decode ($data, true) output, so Json_decode ($data) outputs an object, and Json_decode ("$arr", true) is forcing it to generate a PHP associative array.
2.json_encode ()
Json_encode
(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
json_encode-JSON Encoding of variables
Report a bug description
String Json_encode (mixed $value [, int $options = 0])
Returns the JSON form of value values
Report a bug parameter
Value
The value to encode, in addition to the resource type, can be any data type
This function can only accept UTF-8 encoded data.
Options
A binary mask consisting of the following constants: Json_hex_quot, Json_hex_tag, Json_hex_amp, Json_hex_apos, Json_numeric_check, Json_pretty_print, JSON_ Unescaped_slashes, Json_force_object, Json_unescaped_unicode.
Report a bug return value
A successful encoding returns a string in JSON form or FALSE on failure.
Report a Bug update log
Release Notes
5.4.0 Options parameter Add constants: Json_pretty_print, Json_unescaped_slashes, and Json_unescaped_unicode.
5.3.3 Options parameter Add constant: Json_numeric_check.
5.3.0 add options parameter.
Report a bug Example
Example #1 a json_encode () example
Copy the code code as follows:
<?php
$arr = Array (' A ' =>1, ' B ' =>2, ' C ' =>3, ' d ' =>4, ' e ' =>5);
echo Json_encode ($arr);
?>
The above routines will output:
Copy the code code as follows:
{"A": 1, "B": 2, "C": 3, "D": 4, "E": 5}
Example #2 The use of the options parameter in the Json_encode () function
Copy the code code as follows:
<?php
$a = Array (' <foo> ', ' ' Bar ', ' ' Baz ' ', ' &blong& ', ' \xc3\xa9 ');
echo "Normal:", Json_encode ($a), "\ n";
echo "Tags:", Json_encode ($a, json_hex_tag), "\ n";
echo "Apos:", Json_encode ($a, json_hex_apos), "\ n";
echo "Quot:", Json_encode ($a, json_hex_quot), "\ n";
echo "AMP:", Json_encode ($a, json_hex_amp), "\ n";
echo "Unicode:", Json_encode ($a, json_unescaped_unicode), "\ n";
echo "All:", Json_encode ($a, Json_hex_tag | Json_hex_apos | Json_hex_quot | Json_hex_amp | Json_unescaped_unicode), "\ n";
$b = Array ();
echo "Empty array output as array:", Json_encode ($b), "\ n";
echo "Empty array output As Object:", Json_encode ($b, json_force_object), "\ n";
$c = Array (array (all));
echo "non-associative array output as array:", Json_encode ($c), "\ n";
echo "non-associative array output As Object:", Json_encode ($c, json_force_object), "\ n";
$d = Array (' foo ' = ' bar ', ' baz ' = ' long ');
echo "Associative array always output as object:", Json_encode ($d), "\ n";
echo "Associative array always output as object:", Json_encode ($d, json_force_object), "\ n";
?>
The above routines will output:
Copy the code code as follows:
Normal: ["<foo>", "bar", "\" Baz\ "", "&blong&", "\u00e9"]
Tags: ["\u003cfoo\u003e", "bar", "\" Baz\ "", "&blong&", "\u00e9"]
Apos: ["<foo>", "\u0027bar\u0027", "\" Baz\ "", "&blong&", "\u00e9"]
Quot: ["<foo>", "' Bar '", "\u0022baz\u0022", "&blong&", "\u00e9"]
AMP: ["<foo>", "' Bar '", "\" Baz\ "", "\u0026blong\u0026", "\u00e9"]
Unicode: ["<foo>", "bar", "\" Baz\ "," &blong& "," é "]
All: ["\u003cfoo\u003e", "\u0027bar\u0027", "\u0022baz\u0022", "\u0026blong\u0026", "é"]
Empty array Output as array: []
Empty array Output As object: {}
Non-associative array Output as array: [[[+]]
Non-associative array Output As object: {"0": {"0": 1, "1": 2, "2": 3}}
Associative array always output as object: {"foo": "Bar", "baz": "Long"}
Associative array always output as object: {"foo": "Bar", "baz": "Long"}
Example #3 continuous and discontinuous arrays example
Copy the code code as follows:
<?php
echo "Continuous array". Php_eol;
$sequential = Array ("foo", "Bar", "Baz", "Blong");
Var_dump (
$sequential,
Json_encode ($sequential)
);
echo Php_eol. " Non-contiguous array ". Php_eol;
$nonsequential = Array (1=> "foo", 2=> "bar", 3=> "Baz", 4=> "Blong");
Var_dump (
$nonsequential,
Json_encode ($nonsequential)
);
echo Php_eol. " Deletes a contiguous array of values in a way that produces a non-contiguous array ". Php_eol;
Unset ($sequential [1]);
Var_dump (
$sequential,
Json_encode ($sequential)
);
?>
The above routines will output:
Copy the code code as follows:
Contiguous array
Array (4) {
[0]=>
String (3) "Foo"
[1]=>
String (3) "Bar"
[2]=>
String (3) "Baz"
[3]=>
String (5) "Blong"
}
String "[" foo "," Bar "," Baz "," Blong "]"
Non-contiguous array
Array (4) {
[1]=>
String (3) "Foo"
[2]=>
String (3) "Bar"
[3]=>
String (3) "Baz"
[4]=>
String (5) "Blong"
}
String "{" 1 ":" foo "," 2 ":" Bar "," 3 ":" Baz "," 4 ":" Blong "}"
Non-contiguous array produced by deleting a continuous array of values
Array (3) {
[0]=>
String (3) "Foo"
[2]=>
String (3) "Baz"
[3]=>
String (5) "Blong"
}
String "{" 0 ":" foo "," 2 ":" Baz "," 3 ":" Blong "}"
Copy the code code as follows:
$obj->name= ' A1 '; $obj->number = ' 123 ';
$obj->contno= ' 000 ';
echo Json_encode ($obj);
The result is:
Copy the code code as follows:
{"Name": "A1",
"Number": "123",
"Contno": "000"
}
As you can see, Json_encode () and Json_decode () are compiled and deserialized, and note that JSON only accepts UTF-8 encoded characters, so the parameters of Json_encode () must be utf-8 encoded, otherwise they will be null or empty.
Json
String in JSON string format to decode.
Assoc
When this argument is TRUE, an array is returned instead of an object.
return value
Returns an object or if the optional assoc parameter are TRUE, an associative array is instead returned.
Example
Examples of Example #1 Json_decode ()
Copy the code code as follows:
<?php
$json = ' {' A ': 1, ' B ': 2, ' C ': 3, ' d ': 4, ' E ': 5} ';
Var_dump (Json_decode ($json));
Var_dump (Json_decode ($json, true));
?>
The example above will output:
Copy the code code as follows:
Object (StdClass) #1 (5) {
["a"] = Int (1)
["B"] = + int (2)
["C"] = + int (3)
["D"] = + int (4)
["e"] = + int (5)
}
Array (5) {
["a"] = Int (1)
["B"] = + int (2)
["C"] = + int (3)
["D"] = + int (4)
["e"] = + int (5)
}
Copy the code code as follows:
$data = ' [{' name ': ' A1 ', ' Number ': ' 123 ', ' Contno ': ', ' ' qqno ': '},{' Name ': ' A1 ', ' Number ': ' 123 ', ' Contno ': ' $ ', ' qqno ":" "},{" Name ":" A1 "," Number ":" 123 "," Contno ":" The "," Qqno ":"}] ';
echo Json_decode ($data);
The result is:
Copy the code code as follows:
Array ([0] = StdClass Object ([Name] = + a1 [number] = 123 [Contno] [qqno] = =) [1] = Stdclas s Object ([name] = + a1 [number] = 123 [Contno] [qqno] = = [2] = = StdClass Object ([name] = a 1 [number] [123] [Contno] [qqno] [] =]
It can be seen that the object is compiled by Json_decode (), and now output Json_decode ($data, true) try
Copy the code code as follows:
Echo Json_decode ($data, true);
Results:
Copy the code code as follows:
Array ([0] = = Array ([name] = + a1 [number] = 123 [Contno] [qqno] = = [1] = = Array ([name] =& Gt a1 [NUMBER] = 123 [Contno] [qqno] = [2] = = Array ([Name] + a1 [number] = 123 [Contno] => ; [qqno] =))
You can see an associative array of Json_decode ($data, true) output, so Json_decode ($data) outputs an object, and Json_decode ("$arr", true) is forcing it to generate a PHP associative array.
2.json_encode ()
Json_encode
(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
json_encode-JSON Encoding of variables
Report a bug description
String Json_encode (mixed $value [, int $options = 0])
Returns the JSON form of value values
Report a bug parameter
Value
The value to encode, in addition to the resource type, can be any data type
This function can only accept UTF-8 encoded data.
Options
A binary mask consisting of the following constants: Json_hex_quot, Json_hex_tag, Json_hex_amp, Json_hex_apos, Json_numeric_check, Json_pretty_print, JSON_ Unescaped_slashes, Json_force_object, Json_unescaped_unicode.
Report a bug return value
A successful encoding returns a string in JSON form or FALSE on failure.
Report a Bug update log
Release Notes
5.4.0 Options parameter Add constants: Json_pretty_print, Json_unescaped_slashes, and Json_unescaped_unicode.
5.3.3 Options parameter Add constant: Json_numeric_check.
5.3.0 add options parameter.
Report a bug Example
Example #1 a json_encode () example
Copy the code code as follows:
<?php
$arr = Array (' A ' =>1, ' B ' =>2, ' C ' =>3, ' d ' =>4, ' e ' =>5);
echo Json_encode ($arr);
?>
The above routines will output:
Copy the code code as follows:
{"A": 1, "B": 2, "C": 3, "D": 4, "E": 5}
Example #2 The use of the options parameter in the Json_encode () function
Copy the code code as follows:
<?php
$a = Array (' <foo> ', ' ' Bar ', ' ' Baz ' ', ' &blong& ', ' \xc3\xa9 ');
echo "Normal:", Json_encode ($a), "\ n";
echo "Tags:", Json_encode ($a, json_hex_tag), "\ n";
echo "Apos:", Json_encode ($a, json_hex_apos), "\ n";
echo "Quot:", Json_encode ($a, json_hex_quot), "\ n";
echo "AMP:", Json_encode ($a, json_hex_amp), "\ n";
echo "Unicode:", Json_encode ($a, json_unescaped_unicode), "\ n";
echo "All:", Json_encode ($a, Json_hex_tag | Json_hex_apos | Json_hex_quot | Json_hex_amp | Json_unescaped_unicode), "\ n";
$b = Array ();
echo "Empty array output as array:", Json_encode ($b), "\ n";
echo "Empty array output As Object:", Json_encode ($b, json_force_object), "\ n";
$c = Array (array (all));
echo "non-associative array output as array:", Json_encode ($c), "\ n";
echo "non-associative array output As Object:", Json_encode ($c, json_force_object), "\ n";
$d = Array (' foo ' = ' bar ', ' baz ' = ' long ');
echo "Associative array always output as object:", Json_encode ($d), "\ n";
echo "Associative array always output as object:", Json_encode ($d, json_force_object), "\ n";
?>
The above routines will output:
Copy the code code as follows:
Normal: ["<foo>", "bar", "\" Baz\ "", "&blong&", "\u00e9"]
Tags: ["\u003cfoo\u003e", "bar", "\" Baz\ "", "&blong&", "\u00e9"]
Apos: ["<foo>", "\u0027bar\u0027", "\" Baz\ "", "&blong&", "\u00e9"]
Quot: ["<foo>", "' Bar '", "\u0022baz\u0022", "&blong&", "\u00e9"]
AMP: ["<foo>", "' Bar '", "\" Baz\ "", "\u0026blong\u0026", "\u00e9"]
Unicode: ["<foo>", "bar", "\" Baz\ "," &blong& "," é "]
All: ["\u003cfoo\u003e", "\u0027bar\u0027", "\u0022baz\u0022", "\u0026blong\u0026", "é"]
Empty array Output as array: []
Empty array Output As object: {}
Non-associative array Output as array: [[[+]]
Non-associative array Output As object: {"0": {"0": 1, "1": 2, "2": 3}}
Associative array always output as object: {"foo": "Bar", "baz": "Long"}
Associative array always output as object: {"foo": "Bar", "baz": "Long"}
Example #3 continuous and discontinuous arrays example
Copy the code code as follows:
<?php
echo "Continuous array". Php_eol;
$sequential = Array ("foo", "Bar", "Baz", "Blong");
Var_dump (
$sequential,
Json_encode ($sequential)
);
echo Php_eol. " Non-contiguous array ". Php_eol;
$nonsequential = Array (1=> "foo", 2=> "bar", 3=> "Baz", 4=> "Blong");
Var_dump (
$nonsequential,
Json_encode ($nonsequential)
);
echo Php_eol. " Deletes a contiguous array of values in a way that produces a non-contiguous array ". Php_eol;
Unset ($sequential [1]);
Var_dump (
$sequential,
Json_encode ($sequential)
);
?>
The above routines will output:
Copy the code code as follows:
Contiguous array
Array (4) {
[0]=>
String (3) "Foo"
[1]=>
String (3) "Bar"
[2]=>
String (3) "Baz"
[3]=>
String (5) "Blong"
}
String "[" foo "," Bar "," Baz "," Blong "]"
Non-contiguous array
Array (4) {
[1]=>
String (3) "Foo"
[2]=>
String (3) "Bar"
[3]=>
String (3) "Baz"
[4]=>
String (5) "Blong"
}
String "{" 1 ":" foo "," 2 ":" Bar "," 3 ":" Baz "," 4 ":" Blong "}"
Non-contiguous array produced by deleting a continuous array of values
Array (3) {
[0]=>
String (3) "Foo"
[2]=>
String (3) "Baz"
[3]=>
String (5) "Blong"
}
String "{" 0 ":" foo "," 2 ":" Baz "," 3 ":" Blong "}"
Copy the code code as follows:
$obj->name= ' A1 '; $obj->number = ' 123 ';
$obj->contno= ' 000 ';
echo Json_encode ($obj);
The result is:
Copy the code code as follows:
{"Name": "A1",
"Number": "123",
"Contno": "000"
}
As you can see, Json_encode () and Json_decode () are compiled and deserialized, and note that JSON only accepts UTF-8 encoded characters, so the parameters of Json_encode () must be utf-8 encoded, otherwise they will be null or empty.