2012-07-06 30 views
0

我是JSON的新手,因此解析它时出现了一些问题。使用json_decode解码JSON文件中的多行字符串()

我做了一个JSON文件:

newjson.json

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

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

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

我该怎么办?

回答

5

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

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

使用,而不是如果你想换行文本换行逃逸。否则,你将不得不忍受一个不太漂亮的字符串。

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

哦,我只是想分开长字符串内容的可读性,当写它。那不是可能吗?我是否应该把它放在一条线上? – 2012-07-06 05:19:56

+0

@ Young-HoKim:是的,它必须在一行中。 – Ryan 2012-07-06 05:21:10

1

一定有什么不对您的JSON语法这就是为什么它不能分析它...

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

复制你的整个JSON字符串存在,并尝试以操纵...你可能会发现你的错误