当json字符串包含\\ b时,json_decode失败

时间:2016-10-18 23:19:55

标签: php

我正在尝试使用json_decode解码以下JSON字符串。解码失败,因为字符串包含\b

$json = '{
    "question": {
    "content": "$(2,4)$ : 2x-y=2\\times \\blue2-\\pink4=0$ \n res"       
        }}' ;

$result = json_decode($json);  
print_r($result);

我想知道解码的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

好吧,\p不是JSON中有效的字符串转义序列。这需要一个双重反斜杠。这意味着您应该使用四重反斜杠在PHP上下文中定义JSON字符串。

反斜杠也会在单引号字符串中自行转义。使用print查看您在将其传递给json_encode之前构建的实际字符串。

编辑:\b不太可能是原因。这是钟形角色。但是\p是不允许的。有关规范,请参阅http://json.org/