json_encode

(PHP 5 >= 5.2.0, PHP 7, PECL json >= 1.2.0)

json_encode�Ա������� JSON ����

˵��

json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] ) : string

�����ַ����������� value ֵ JSON ��ʽ�ı�ʾ��

�����ܴ���� options ����Ӱ�죬���⸡��ֵ�ı��������� serialize_precision��

����

value

������� value ������resource ����֮�⣬����Ϊ�κ��������͡�

�����ַ������ݵı�������� UTF-8��

Note:

PHP implements a superset of JSON as specified in the original » RFC 7159.

options

�����³�����ɵĶ��������룺 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_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR�� ���� JSON ��������ο�JSON ����ҳ�档

depth

���������ȡ� �������0��

����ֵ

�ɹ��򷵻� JSON ����� string ������ʧ��ʱ���� FALSE ��

������־

�汾 ˵��
7.1.0 �� Double ��ֵ���б���ʱ��ʹ�� serialize_precision ���� precision��
5.6.6 options �������ӳ����� JSON_PRESERVE_ZERO_FRACTION
5.5.0 ���� depth ������
5.5.0 ������ JSON_PARTIAL_OUTPUT_ON_ERROR ѡ�
5.5.0 ʧ��ʱ���ص�ֵ�� null �ַ����ij� FALSE��
5.4.0 options �������ӳ����� JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, �� JSON_UNESCAPED_UNICODE��
5.3.3 options �������ӳ�����JSON_NUMERIC_CHECK��
5.3.0 ���� options ����.

����

Example #1 json_encode() ����

<?php
$arr 
= array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo 
json_encode($arr);
?>

�������̻������

{"a":1,"b":2,"c":3,"d":4,"e":5}

Example #2 json_encode() ������ options �������÷�

<?php
$a 
= array('<foo>',"'bar'",'"baz"','&blong&'"\xc3\xa9");

echo 
"Normal: ",  json_encode($a), "\n";
echo 
"Tags: ",    json_encode($aJSON_HEX_TAG), "\n";
echo 
"Apos: ",    json_encode($aJSON_HEX_APOS), "\n";
echo 
"Quot: ",    json_encode($aJSON_HEX_QUOT), "\n";
echo 
"Amp: ",     json_encode($aJSON_HEX_AMP), "\n";
echo 
"Unicode: "json_encode($aJSON_UNESCAPED_UNICODE), "\n";
echo 
"All: ",     json_encode($aJSON_HEX_TAG JSON_HEX_APOS JSON_HEX_QUOT JSON_HEX_AMP JSON_UNESCAPED_UNICODE), "\n\n";

$b = array();

echo 
"Empty array output as array: "json_encode($b), "\n";
echo 
"Empty array output as object: "json_encode($bJSON_FORCE_OBJECT), "\n\n";

$c = array(array(1,2,3));

echo 
"Non-associative array output as array: "json_encode($c), "\n";
echo 
"Non-associative array output as object: "json_encode($cJSON_FORCE_OBJECT), "\n\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($dJSON_FORCE_OBJECT), "\n\n";
?>

�������̻������

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: [[1,2,3]]
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 ѡ�� JSON_NUMERIC_CHECK ����

<?php
echo "Strings representing numbers automatically turned into numbers".PHP_EOL;
$numbers = array('+123123''-123123''1.2e3''0.00001');
var_dump(
 
$numbers,
 
json_encode($numbersJSON_NUMERIC_CHECK)
);
echo 
"Strings containing improperly formatted numbers".PHP_EOL;
$strings = array('+a33123456789''a123');
var_dump(
 
$strings,
 
json_encode($stringsJSON_NUMERIC_CHECK)
);
?>

�������̵���������ڣ�

Strings representing numbers automatically turned into numbers
array(4) {
  [0]=>
  string(7) "+123123"
  [1]=>
  string(7) "-123123"
  [2]=>
  string(5) "1.2e3"
  [3]=>
  string(7) "0.00001"
}
string(28) "[123123,-123123,1200,1.0e-5]"
Strings containing improperly formatted numbers
array(2) {
  [0]=>
  string(13) "+a33123456789"
  [1]=>
  string(4) "a123"
}
string(24) "["+a33123456789","a123"]"

Example #4 ���������������ʾ��

<?php
echo "��������".PHP_EOL;
$sequential = array("foo""bar""baz""blong");
var_dump(
 
$sequential,
 
json_encode($sequential)
);

echo 
PHP_EOL."����������".PHP_EOL;
$nonsequential = array(1=>"foo"2=>"bar"3=>"baz"4=>"blong");
var_dump(
 
$nonsequential,
 
json_encode($nonsequential)
);

echo 
PHP_EOL."ɾ��һ����������ֵ�ķ�ʽ�����ķ���������".PHP_EOL;
unset(
$sequential[1]);
var_dump(
 
$sequential,
 
json_encode($sequential)
);
?>

�������̻������

��������
array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"

����������
array(4) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(3) "baz"
  [4]=>
  string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"

ɾ��һ����������ֵ�ķ�ʽ�����ķ���������
array(3) {
  [0]=>
  string(3) "foo"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"

Example #5 ѡ�� JSON_PRESERVE_ZERO_FRACTION ������

<?php
var_dump
(json_encode(12.0JSON_PRESERVE_ZERO_FRACTION));
var_dump(json_encode(12.0));
?>

�������̻������

string(4) "12.0"
string(2) "12"

ע��

Note:

���ִ��ʧ�ܣ�����ͨ�� json_last_error() ��������ȡ��ϸ������Ϣ��

Note:

���Ҫ���������ļ����Ǵ�0��ʼ�����֣����еļ����ᱻ�����ַ���������ȷ����Ϊ key-value �ԡ�

Note:

Like the reference JSON encoder, json_encode() will generate JSON that is a simple value (that is, neither an object nor an array) if given a string, integer, float or boolean as an input value. While most decoders will accept these values as valid JSON, some may not, as the specification is ambiguous on this point.

�ܶ���֮��Ӧ�ò����� JSON decoder �ܷ��� json_encode() ���ɵ����ݡ�

�μ�