PHP无法正确解析JSON

时间:2016-08-09 03:34:05

标签: php json

编辑:在Stack Overflow中粘贴代码使其有效。因此,将神秘的制表符字形渲染到空格键中。使用制表符字形,JSON无法正常工作。更多信息可以在我的评论下面找到。

我有这个JSON列表:

[{"title": "<U><b>01420111</U></b> General Physics I","locations": "หมู่ 1 ห้อง PHYS 101<br>กุลพันธ์    <br> เวลา: 11:00-12:30","start": 240, "end": 330, "color": "#009688"},{"title": "<U><b>01417167</U></b> Engineering Mathematics I","locations": "หมู่ 1 ห้อง LH 3-304<br>ชาญ,กนกรัตน์   <br> เวลา: 13:00-14:30","start": 360, "end": 450, "color": "#00bcd4"}]

,为了阅读的目的,可以缩进到这个

[
  {
    "title": "<U><b>01420111</U></b> General Physics I",
    "locations": "หมู่ 1 ห้อง PHYS 101<br>กุลพันธ์  <br> เวลา: 11:00-12:30",
    "start": 240,
    "end": 330,
    "color": "#009688"
  },
  {
    "title": "<U><b>01417167</U></b> Engineering Mathematics I",
    "locations": "หมู่ 1 ห้อง LH 3-304<br>ชาญ,กนกรัตน์  <br> เวลา: 13:00-14:30",
    "start": 360,
    "end": 450,
    "color": "#00bcd4"
  }
]

在我尝试解析JSON后,could be tried online here似乎JSON_decode()函数返回null而不是期望的数组。

有关JSON语法的任何建议,以及“修复”语法的解决方案,使PHP正确解码?提前谢谢〜

2 个答案:

答案 0 :(得分:0)

您的JSON有效,json_decode工作正常。查看this demo

您链接的网站显示相同的结果。您可能正在将json_decode应用于非JSON文本,或者您错误地键入了函数名称(json_decode区分大小写,因此JSON_decode将失败)。以下是如何使用json进行错误检查:

$json_string = '...';
$parsed = json_decode($json_string);  // <- not JSON_decode

//check for error and handle it however makes sense
if(json_last_error()) die(json_last_error_msg());

//safe to continue. parsing successful

答案 1 :(得分:0)

谢谢,现在我意识到了这个错误,它位于JSON的空白处。

Stack Overflow似乎用正常的空格键替换JSON中的神秘字形,使得JSON对解析有效。 However, the original JSON, which contains the mysterious glyph, now pasted on Pastebin to preserve its glyph,无法解析。

观察原始粘贴数据中“กุลพันธ์”背后的空间。字形与普通空格键不同。

接下来的问题是1)我怎么知道哪个字形是,2)如何用PHP中的普通空格替换它?

感谢您愿意再次提供帮助!