在 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 是否定义或建议实现应如何处理本机、非对象、数据类型的转换?或者甚至对转换有意见?我对 RFC的阅读使这变得模棱两可,但我在解释这些事情时很糟糕。
我问是因为我对这种行为从该函数的未来版本中消失的可能性感兴趣。即,如果它被编入规范中的某个地方,那么它消失的可能性要小于有人认为在开发过程中添加的一个。