在PHP里面可以直接用json_decode($str),转回字符串。
为什么变成一个JSON对象了呢?难道PHP有默认解析?
直接输出是这样。
然后直接对其json_decode(,true)是这样。
在PHP里面可以直接用json_decode($str),转回字符串。
为什么变成一个JSON对象了呢?难道PHP有默认解析?
直接输出是这样。
然后直接对其json_decode(,true)是这样。
PHP手册中关于 json_decode 的说明
mixed json_decode ( string $json [, bool $assoc ] )
接受一个 JSON 格式的字符串并且把它转换为 PHP 变量
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
首先你要明白JSON是什么,JavaScript Object Notation,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。说白了它就是一段字符串,由于并没有附加额外的标记,JS也可以直接作为对象处理,所以常用于数据交换。
PHP之所以认得JSON字符串,是因为PHP库中有
JSON_parser
来解析这就像是两个部落之间虽然语言不通,但是约定一种东西做为统一货币来交换物品,这个‘物品’就是我们的数据
既然JS能直接处理JSON对象,那为什么有时AJAX请求拿到的JSON字符串还需要转为JSON对象,这就要分清JSON字符串和JSON对象了
JSON字符串:指的是符合JSON格式要求的JS字符串。如下:
JSON对象:指符合JSON格式要求的JS对象。如下:
在PHP中,相关的操作方法有
json_encode
、json_decode
json_encode
理论上可以将除resourse外的任何数据类型转为JSON格式字符串(不过有些时候会失败~囧~)json_decode
就是将一个JSON格式字符串转为PHP的array
或object
,这取决于第二个参数(true
/false
)