json_encode无法逃脱单引号?

时间:2017-07-04 10:44:26

标签: php json

$emailFields =  array(
    array(
        'name' => 'comments', 
        'type' => 'html', 
        'content' => "ahfsd\jfh/sf's askghaskg sadf"
    ),
);
echo json_encode($emailFields);

打印

[{
    "name": "comments",
    "type": "html",
    "content": "ahfsd\\jfh/sf's askghaskg sadf"
}]

为什么json_encode无法逃脱'

2 个答案:

答案 0 :(得分:1)

正如JSON Docs所说,JSON中的字符串被双引号括起来。没有必要在JSON中转义单引号。

  

值可以是双引号中的字符串,或数字,或true或false或null,或对象或数组。这些结构可以嵌套。

另外

  

字符串是零个或多个Unicode字符的序列,用双引号包装,使用反斜杠转义符。字符表示为单个字符串。

您应该在字符串值中转义 double 引号。

答案 1 :(得分:0)

如果您想将任何`转换为\ u0027,您可以使用以下代码执行此操作:

json_encode($emailFields, JSON_HEX_APOS)

或者您可以映射数组并在每个值上转义撇号。 我不确定你想要实现什么以及为什么要逃避它,但我给了你一些工具,你将由你自己决定。