PHP7.1在Windows7系统(DELL G3电脑)下json转数组:json_decode()的用法及常见错误

本文的操作环境为 Windows7 系统,使用的是 PHP7.1 版,电脑型号是 DELL G3。

PHP7.1在Windows7系统(DELL G3电脑)下json转数组:json_decode()的用法及常见错误

php如何实现json转数组?

json_decode()

该函数用于将json文本转换为相应的PHP数据结构。

下面是一个例子:

$json ='{"foo": 12345}';
$obj = json_decode($json);
print $obj->{'foo'};// 12345

一般而言,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} 。
使用 json_decode 函数对 $json 进行解码,将其转换为关联数组形式,并通过 var_dump 函数输出解码后的结果。

结果就生成了一个关联数组:

array(5) {
   ["a"] => int(1)
   ["b"] => int(2)
   ["c"] => int(3)
   ["d"] => int(4)
   ["e"] => int(5)
}

下面三种json写法都是错的,你能看出错在哪里吗?

json_decode()的常见错误

{"bar": "baz"} 被赋值给了 $bad_json ;$bad_json 中包含了键值对 {'bar': 'baz'} ;$bad_json 的值为 {'bar': 'baz'} ;{"bar": "baz"} 被存储在 $bad_json 中 。
$bad_json ='{ bar: "baz" }';
{"bar": "baz", } 被赋值给了 $bad_json 。
第一个错误在于,json 的分隔符仅被允许。

第二个错误在于,json 名值对的“名”(即冒号左边的部分),在任何情形下都必须使用双引号。第三个错误是,在最后一个值之后不能添加逗号(trailing comma)。对这三个字符串执行 json_decode()操作,都会返回 null 并且报错。

另外,json 仅能用于表示对象和数组。倘若对一个字符串或数值运用 json_decode(),那么就会返回 null。

通过 var_dump 函数输出解码后的结果。

你可能想看:
« 上一篇
下一篇 »

相关推荐

php实时推送,php实地培训

2026年10月05日

53阅读

php乱码出现问号的原因,php乱码出现问号的原因有哪些

2026年10月05日

45阅读

php一句话木马,一句话木马ctf

2026年10月05日

48阅读

php获取数组长度,php中如何获取数组的长度

2026年10月05日

50阅读

php面试题库及答案,php程序员面试真题库

2026年10月05日

47阅读

phpcontent-type修改,php源码二次修改需要多少钱

2026年10月05日

42阅读