> 编程开发 > PHP >
PHP&JSON学习笔记 2017-11-08 16:29 出处:清屏网 人气:
JSON介绍
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
JSON格式函数 描述
json_encode 对变量进行 JSON 编码
json_decode 对 JSON 格式的字符串进行解码,转换为 PHP 变量
json_encodePHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。
语法 string json_encode ( $value [, $options = 0 ] ) 参数以下实例演示了如何将 PHP 数组转换为 JSON 格式数据:
<?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}以下实例演示了如何将 PHP 对象转换为 JSON 格式数据:
<?php class Emp { public $name = ""; public $hobbies = ""; public $birthdate = ""; } $e = new Emp(); $e->name = "sachin"; $e->hobbies = "sports"; $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p"); $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03")); echo json_encode($e); ?>以上代码执行结果为:
{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"} json_decodePHP json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。
语法 mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]]) 参数以下实例演示了如何解码 JSON 数据:
<?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) } PHP&JSON中文显示问题 PHP输出JSON格式把数组直接输出为JSON
<?php $arr = array('姓名'=>'小李','年龄'=>'18'); $json = json_encode($arr); echo $json; ?>输出的结果为:
{"\u59d3\u540d":"\u5c0f\u674e","\u5e74\u9f84":"18"}中文字符被编码成了Unicode
做如下处理,把输出结果匹配一下,把Unicode还原成了汉字
<?php $arr = array('姓名'=>'小李','年龄'=>'18'); $json = json_encode($arr); echo $json; echo '</br>'; echo decodeUnicode($json); function decodeUnicode($str){ return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', create_function( '$matches', 'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");' ), $str); } ?>输出的结果为:
{"\u59d3\u540d":"\u5c0f\u674e","\u5e74\u9f84":"18"} {"姓名":"小李","年龄":"18"}同时PHP5.4版本,已经给Json新增了一个选项: JSON_UNESCAPED_UNICODE。加上这个选项后,就不会自动把中文编码了
<?php $arr = array('姓名'=>'小李','年龄'=>'18'); $json = json_encode($arr, JSON_UNESCAPED_UNICODE); echo $json; ?>输出的结果为:
{"姓名":"小李","年龄":"18"} Reference
PHP JSON | 菜鸟教程
数据类型和Json格式分享给小伙伴们:
本文标签: PHP,JSON/">PHP,JSON
相关文章
发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。
本类最热新闻