【问题标题】:Decoding multiline string in JSON file using json_decode()使用 json_decode() 解码 JSON 文件中的多行字符串
【发布时间】:2012-07-06 13:19:28
【问题描述】:

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

我制作了一个 JSON 文件:

newjson.json

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

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

我认为我应该在将字符串放入解码函数之前使用preg_replace 处理\s。

我该怎么办?

【问题讨论】:

    标签: php json


    【解决方案1】:

    您的 in json 语法一定有问题,这就是它无法解析它的原因...

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

    在那里复制你的整个 json 字符串并尝试对其进行操作......你可能会在那里发现你的错误

    【讨论】:

      【解决方案2】:

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

      • \" 加引号
      • \\ 用于反斜杠
      • \/ 用于正斜杠
      • \b 退格
      • \f 用于换页
      • \n 换行
      • \r 回车
      • \t 用于标签
      • \uxxxx 用于十六进制转义

      如果您想要文字换行符,请使用换行符转义。否则,您将不得不使用不太漂亮的字符串。

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

      【讨论】:

      • 哦,我只是想在编写时将长字符串内容分开以提高可读性。那不就可以了吗?我应该让它排成一行吗?
      • @Young-HoKim:是的,它必须在一行中。
      猜你喜欢
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多