使用json_decode()解码JSON文件中的多行字符串

时间:2012-07-06 05:09:42

标签: php json

我是JSON的新手,因此在解析它时遇到了一些麻烦。

我制作了一个JSON文件:

  

newjson.json

{
    "title":"My Title",
    "contents":"My\
                Multiline\
                Contents"
}

我使用\来避免JavaScript语法中不允许多行字符串的错误,但是当我使用file_get_contents()加载它并使用PHP中的json_decode()对其进行解码时,它可以解析它。

我认为在将字符串放入解码函数之前,我应该使用\来处理preg_replace,或者其他什么。

我该怎么办?

2 个答案:

答案 0 :(得分:5)

PHP无法解析您的字符串,因为it's not valid JSON。唯一有效的转义序列是:

  • \"代表引号
  • \\反斜杠
  • \/正斜杠
  • \b退格
  • \f for formfeed
  • \n换新行
  • \r回车
  • \t选项卡
  • \uxxxx表示十六进制转义

如果您需要文字换行符,请改用换行符。否则,你将不得不忍受一个不那么漂亮的字符串。

{
    "title":"My Title",
    "contents":"My\nMultiline\nContents"
}

答案 1 :(得分:1)

你的json语法一定有问题,这就是为什么它无法解析它......

试试你的http://json.parser.online.fr/

将你的整个json字符串复制到那里并尝试操作......你可能会在那里找到你的错误