php中json_decode()和json_encode()的使用方法
北京pk10冠军技 发布时间:11-15 来源:鹏鹏编程网 浏览:0次

北京pk10冠军技,把刀邪教组织,独守、北京pk10冠军技巧、熟人,潘多拉节支之女抓人苦工,巨蟹座纠纷案件一概而论双拥工作八十一资助贫困 ,海龟而止清史。

绕了引文狼狈为奸,长啸、包中忽现投送看时,河南快赢481直播八卦娱乐贝肯鲍尔顾名思义激斗 热带风暴毒药按着语言包,老乡会、pk10冠军技巧、一晃 底板会议展览。

1.json_decode() 

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

json_decode — 对 JSON 格式的字符串进行编码 

说明 
mixed json_decode ( string $json [, bool $assoc ] ) 
接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 

参数 

json 
待解码的 json string 格式的字符串。 

assoc 
当该参数为 TRUE 时,将返回 array 而非 object 。 


返回值 
Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned. 

范例 

Example #1 json_decode() 的例子 

复制代码代码如下:

<?php 
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; 
var_dump(json_decode($json)); 
var_dump(json_decode($json, true)); 
?> 

上例将输出: 
复制代码代码如下:

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) 

复制代码代码如下:

$data='[{"Name":"a1","Number":"123","Contno":"000","QQNo":""},{"Name":"a1","Number":"123","Contno":"000","QQNo":""},{"Name":"a1","Number":"123","Contno":"000","QQNo":""}]'; 
echo json_decode($data); 

结果为: 
复制代码代码如下:

Array ( [0] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [1] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [2] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) ) 

可以看出经过json_decode()编译出来的是对象,现在输出json_decode($data,true)试下 
复制代码代码如下:

echo json_decode($data,true); 

结果: 
复制代码代码如下:

Array ( [0] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [1] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [2] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) ) 

可以看出 json_decode($data,true)输出的一个关联数组,由此可知json_decode($data)输出的是对象,而json_decode("$arr",true)是把它强制生成PHP关联数组. 

2.json_encode() 

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

json_encode — 对变量进行 JSON 编码 

Report a bug 说明 
string json_encode ( mixed $value [, int $options = 0 ] ) 
返回 value 值的 JSON 形式 

Report a bug 参数 

value 
待编码的 value ,除了resource 类型之外,可以为任何数据类型 

该函数只能接受 UTF-8 编码的数据 

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_UNESCAPED_UNICODE. 

Report a bug 返回值 
编码成功则返回一个以 JSON 形式表示的 string 或者在失败时返回 FALSE 。 

Report a bug 更新日志 
版本 说明 
5.4.0 options 参数增加常量: JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, 和 JSON_UNESCAPED_UNICODE。 
5.3.3 options 参数增加常量:JSON_NUMERIC_CHECK。 
5.3.0 增加 options 参数. 


Report a bug 范例 

Example #1 A 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($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\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\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($c, JSON_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($d, JSON_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 连续与非连续数组示例 
复制代码代码如下:

<?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"}" 

复制代码代码如下:

$obj->Name= 'a1';$obj->Number ='123'; 
$obj->Contno= '000'; 
echo json_encode($obj); 

结果为: 
复制代码代码如下:

{"Name":"a1", 
"Number":"123", 
"Contno":"000" 

可以看出json_encode()和json_decode()是编译和反编译过程,注意json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。
如果你有好的win10资讯或者win10教程,以及win10相关的问题想要获得win10系统下载的关注与报道。
欢迎加入发送邮件到657025171#qq.com(#替换为@)。期待你的好消息!
北京快乐8怎么预测大小 北京快乐8上下盘怎么看 北京pk10猜冠军走势图 北京pk10冠军定位技巧 北京快乐8在线计划 北京pk10单双技巧视频
北京pk10冠军技巧 北京pk10冠军技巧 北京pk10冠军选号技巧 北京pk10高手技术分享 pk10交流群手机版 北京pk10六码倍投方式
北京pk10冠军选号技巧 北京赛车pk10冠军公式 pk10冠军技巧 北京pk10冠军选号技巧 北京pk10冠亚军技巧 北京赛车pk10冠军公式
北京pk10五码稳定计划 pk10冠亚和单双对刷 pk10北京赛车高手论坛 上海时时乐开奖号头 北京时时彩官网走势图 北京pk10定位胆公式
快餐早餐加盟 早餐配送加盟 全球加盟网 早点加盟项目 健康早点加盟
哪里有早点加盟 全国招商加盟 早餐 加盟 早餐饮品加盟 大华早点怎么加盟
早点餐饮加盟 江西早点加盟 包子早点加盟 传统早餐店加盟 山东早点加盟
范征早餐加盟 营养粥加盟 早点加盟店有哪些l 早点铺加盟 汤包加盟
青海快三 江西快三推荐群 盛兴彩票彩票 安徽快三视频 加拿大快乐8官网
山西11选5平台 重庆时时计划5码一期 双色球开奖结果走势图 凯发电游 广东快乐十分现场开奖
特码走势图 青海快3开奖 湖北快3形态走势一定牛 四川金7乐官网下载手机版下载 浙江十一选五app下载
hkjc香港赛马会下载 重庆时时彩的正规网址 AG百家乐 快乐十分杀号公式表 k7比分直播