【发布时间】:2023-04-07 03:05:01
【问题描述】:
在 PHP 中,您可以使用 json_encode 将对象编码为 json 字符串。
$string = json_encode($some_object);
然而,PHP 有大量不被视为对象的标准数据类型(整数、字符串等)。如果您将字符串传递给 json_encode,这将返回一个包含 javascript 语句的字符串,该语句可用于定义字符串。
用不那么尴尬的措辞,这个
echo json_encode("Hello
world, please don't " . '"' . "misuse quote's for emphasis " . "or possessive apostrophes' ");
将输出这个(一个 javascript 就绪的字符串)
"Hello \n\tworld, please don't \"misuse quote'sor possessive apostrophes' "
这种行为是 JSON 规范的一部分吗?也就是说,JSON 是否定义或建议实现应如何处理本机、非对象数据类型的转换?或者甚至对转换有意见?我对of the RFC 的阅读使这变得模棱两可,但我不擅长解释这些事情。
我之所以这么问,是因为我对这种行为从函数的未来版本中消失的可能性感兴趣。即,如果它在某处的规范中被编入规范,那么它消失的可能性要比有人认为在开发过程中添加的一次性的要小。
【问题讨论】:
标签: php javascript json rfc rfc4627