保存"名值对"(name/value)的关联数组(associative
array
)。
由于 javascript 不支持关联数组,所以 json_encode()只将索引数组(indexed
array
)转为数
组格式,而将关联数组(associative
array
)转为对象格式。
比如,现在有一个索引数组
代码如下:
$arr
= Array('one', 'two', 'three');
echo
json_encode(
$arr
);
结果为:
["one","two","three"]
如果将它改为关联数组:
$arr
= Array('1′=>'one', '2′=>'two', '3′=>'three');
echo
json_encode(
$arr
);
结果就变了:
{"1″:"one","2″:"two","3″:"three"}
注意,数据格式从"[]"(数组)变成了"{}"
(对象)。
如果你需要将"索引数组"强制转化成"对象"
,可以这样写
json_encode( (object)
$arr
);
或者
json_encode (
$arr
, JSON_FORCE_OBJECT );
三、类(
class
)的转换
下面是一个 PHP
的类:
代码如下:
class
Foo {
const
ERROR_CODE = '404′;
public
$public_ex
= 'this is public';
private
$private_ex
= 'this is private!';
protected
$protected_ex
= 'this should be protected';
public
function
getErrorCode() {
return
self::ERROR_CODE;
}
}
现在,对这个类的实例进行 json
转换:
代码如下:
$foo
=
new
Foo;
$foo_json
= json_encode(
$foo
);
echo
$foo_json
;