为什么WordPress对OPTIONS表使用序列化而不是json_encode?

时间:2012-08-07 作者:ptim

我对serialize (我在迁移WordPress安装时经常遇到它)我刚刚发现json_encode.

既然serialize在替换数据库中的字符串时会带来很多麻烦(例如,直接编辑optinos字段),为什么WordPress更喜欢serialize而不是(非常相似的)json\\U编码,后者不会将字符串长度插入存储值中。

我的第一个想法是,它可能提供一些安全或错误检查的好处-如果字符串长度不正确,WordPress将忽略该选项。。但我对一个有保留的解释感兴趣:)

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

序列化表示可以存储在文本中,而反向JSON表示可以存储在文本中,但不能总是精确地反向运行此示例:

$query = new WP_Query();
var_dump( $query );
var_dump( unserialize( serialize( $query ) ) );
var_dump( json_decode( json_encode( $query ) ) );
经过序列化后准确WP_Query 对象被重新创建stdClass 对象
SO网友:guidod

关于不将其更改为JSON背后的原因,请参见此处:

https://core.trac.wordpress.org/ticket/23753

结束

相关推荐

WordPress JSONAPI Introspector总是将数字限制在10?

我对Wordpress和JSON API有点陌生,所以如果这是一个新手问题,请原谅,但我正在尝试获取一些不同自定义帖子类型的所有帖子,并通过我自己的JSON控制器(扩展JSON API)将它们作为JSON返回如果我这样做:$posts = $json_api->introspector->get_posts(array(\'post_type\' => array(\'post\',\'tweet\',\'gallery\',\'video\',\'music\'), \'post_pa