php json格式转换的方法:1、通过json_encode函数将php的array和object转换成json格式;2、通过json_decode函数将json文本转换为相应的PHP数据结构。
本文操作环境:windows7系统、PHP7.1版,DELL G3电脑。
php json格式互转
php原生提供 json_encode($str)和json_decode($str)。
1.json_encode()
此函数是将php的array和object转换成json格式。
eg:array $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); result:{"a":1,"b":2,"c":3,"d":4,"e":5} eg:object $obj->body = 'another post'; $obj->id = 21; result: { "body":"another post", "id":21, }通常情况下,json_decode()总是返回一个PHP对象,而不是数组。 比如:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));结果就是生成一个PHP对象:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)}
如果想要强制生成PHP关联数组,json_decode()需要加一个参数true :
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json),true);结果就生成了一个关联数组:
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)}
五、json_decode()的常见错误
下面三种json写法都是错的,你能看出错在哪里吗?
$bad_json = "{ 'bar': 'baz' }";
$bad_json = '{ bar: "baz" }';
$bad_json = '{ "bar": "baz", }';
对这三个字符串执行json_decode()都将返回null,并且报错。
第一个的错误是,json的分隔符(delimiter)只允许使用双引号,不能使用单引号。第二个的错误是, json名 值对的"名"(冒号左边的部分),任何情况下都 必须使用双引号 。第三个的错误是,最后一个值之后不能添加逗号(trailing comma)。
另外,json只能用来表示对象(object)和数组(array),如果对一个字符串或数值使用json_decode(),将会返回null。var_dump(json_decode("Hello World")); //null
以上就是php json 格式如何转换的详细内容!
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did52611
php json 格式如何转换
阅读:54次