JSON入门指南:什么是JSON及其基本语法与应用场景详解
这篇文章主要介绍了相关知识,即 php 如何将 json 字符串转为数组。内容详细且易懂,操作简便又快捷,具有一定的借鉴价值。相信大家读完这篇关于 php 将 json 字符串转为数组的方法是什么的文章后,都会有所收获。下面我们一起来看看吧。

一、什么是JSON
JSON 的全称是 JavaScript Object Notation,也就是 JavaScript 对象表示法。它是一种比较轻量的数据交换格式。这种格式是以 JavaScript 的对象表示法为基础的,不过和 JavaScript 语言没有关系,能够被各种不同的编程语言进行解析和生成。
在 JSON 里,数据通常以“键值对”的形式来展现。其形式类似{"key1":"value1","key2":"value2"}。在此当中,键必须是字符串类型的,而值能够是字符串、数字、布尔类型、数组、对象等各类不同的数据类型。这种数据格式的优势在于,它既容易被理解和编写,也便于读取和解析,同时还利于传输和处理。在Web开发中,JSON常用于前后端之间的数据交换。
二、PHP中将JSON字符串转为数组的方法
PHP 提供了一种很简单的方式能把 JSON 字符串转换成数组,这种方式就是 json_decode()函数。这个函数能够把 JSON 格式的字符串解码成 PHP 的数组或者对象。
json_decode()函数的语法如下:
mixed 对字符串 $json 进行 json 解码操作,可选择是否以关联数组形式返回($assoc 默认为 false),还可指定解码深度($depth 默认为 512)以及其他选项($options 默认为 0)。
其中,要解码的 JSON 字符串是$json,是否将解码后的 JSON 转换为关联数组由$assoc决定,转换的深度是$depth,转换时的选项为$options。
将JSON字符串转为普通对象
当没有传入$assoc参数或者$assoc参数为 false 的时候,json_decode()会默认把解码后的 JSON 转换成普通对象。比如:
$json_string 的值为 '{"name":"Tom","age":18}';
通过 json_decode 函数对 $json_string 进行解码操作,将其结果赋值给变量 $obj 。
var_dump($obj);
输出:
object(stdClass)#1 (2) {
["name"]=>
string(3) "Tom"
["age"]=>
int(18)
}
上述代码把 JSON 字符串解码成了一个普通对象。解码之后,能够利用 -> 操作符来获取该对象的属性值。
将JSON字符串转为关联数组
当把$assoc参数设定为 true 的时候,json_decode()会把解码后的 JSON 转变为关联数组。比如:
$json_string = '{"name":"Tom","age":18}';
使用 json_decode 函数将 $json_string 解码为关联数组,解码时设置第二个参数为 true,将其结果赋值给 $arr 。
var_dump($arr);
输出:
array(2) {
["name"]=>string(3) "Tom"
["age"]=>int(18)
}
上述代码能把 JSON 字符串解码成一个关联数组。解码之后,能够通过数组索引来获取数组的元素值。
在将 JSON 字符串转换为关联数组的过程中,要注意如果 JSON 里存在重复的键,那么就只会保留最后一个键值对。
将JSON字符串转为PHP对象
json_decode()函数除了能将 JSON 转为普通对象和关联数组之外,还提供了把 JSON 字符串转换为 PHP 对象的方式。要做到这一点,需将$assoc参数设置为 false,并且在解码过程中利用 stdClass 类来创建新对象。例如:
$json_string = '{"name":"Tom","age":18}';
$obj 等于通过 json_decode 函数对 $json_string 进行解码,解码时不进行 JSON 转换,设置缓冲区大小为 512,并将结果以 JSON_OBJECT_AS_ARRAY 的形式返回。
$php_obj = new stdClass();
对于每一个 $obj ,其中的元素通过 $key 进行索引,对应的元素值为 $value 。
$php_obj->$key = $value;
}
var_dump($php_obj);
输出:
object(stdClass)#4 (2) {
["name"]=>
string(3) "Tom"
["age"]=>
int(18)
}
上述代码能把 JSON 字符串解码成一个 PHP 对象。通过 foreach 循环,能把关联数组的键值对传递给新的 stdClass 对象。接着可以使用$->操作符来获取对象的属性值。
这篇关于“php 将 json 字符串转为数组的方法是什么”的文章内容已介绍完毕,感谢大家的阅读!大家对“php 将 json 字符串转为数组的方法是什么”这一知识已有一定了解,若还想学习更多知识,欢迎关注亿速云行业资讯频道。