在 PHP 中将 Object 转换为 JSON 和 JSON 转换为 Object(像 Gson for Java 这样的库)
我正在用PHP开发一个Web应用程序,
我需要将许多对象作为JSON字符串从服务器传输,是否有任何PHP库可以将对象转换为JSON和JSON字符串转换为Objec,例如Java的Gson库。
我正在用PHP开发一个Web应用程序,
我需要将许多对象作为JSON字符串从服务器传输,是否有任何PHP库可以将对象转换为JSON和JSON字符串转换为Objec,例如Java的Gson库。
这应该可以解决问题!
// convert object => json
$json = json_encode($myObject);
// convert json => object
$obj = json_decode($json);
下面是一个示例
$foo = new StdClass();
$foo->hello = "world";
$foo->bar = "baz";
$json = json_encode($foo);
echo $json;
//=> {"hello":"world","bar":"baz"}
print_r(json_decode($json));
// stdClass Object
// (
// [hello] => world
// [bar] => baz
// )
如果希望输出为数组而不是对象,请传递给true
json_decode
print_r(json_decode($json, true));
// Array
// (
// [hello] => world
// [bar] => baz
// )
更多关于json_encode()
另请参见:json_decode()
为了提高大规模应用的可扩展性,请使用带有封装字段的 oop 样式。
简单的方法 :-
class Fruit implements JsonSerializable {
private $type = 'Apple', $lastEaten = null;
public function __construct() {
$this->lastEaten = new DateTime();
}
public function jsonSerialize() {
return [
'category' => $this->type,
'EatenTime' => $this->lastEaten->format(DateTime::ISO8601)
];
}
}
回声json_encode(新水果());其中输出:
{"category":"Apple","EatenTime":"2013-01-31T11:17:07-0500"}
真正的Gson在PHP上:-