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


Decoding multiline string in JSON file using json_decode()

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

我做了一个JSON文件:

newjson.json

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

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

我想我应该用 preg_replace 来处理 ' s,或者在我将字符串放入解码函数之前的其他东西。

我该怎么办?

PHP 无法解析您的字符串,因为它不是有效的 JSON。唯一有效的转义序列是:

  • 引号'"
  • 反斜杠的''
  • 正斜杠的'/
  • 退格'b
  • 表单馈送的'f
  • 换行符的'n
  • 回车'r
  • 选项卡的't
  • 十六进制转义的'uxxxx
如果需要文字换行符

,请改用换行符转义。否则,你将不得不忍受一个不太漂亮的字符串。

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

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

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

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