如何用PHP解析无效的JSON

时间:2016-06-13 12:51:38

标签: php json parsing

我正在为我们公司的职业列表页面工作。我们使用API​​从我们的HR软件提供商处检索信息。 JSON似乎无效。我使用下面的代码进行测试。

<?php
     //Testing if ADPs json is valid
     $json = json_decode($jsondata);
     if (json_last_error() === JSON_ERROR_NONE) {
        // $json contains a valid json string. It's ready to use.
        print_r($jobdata);
     } else {
        // oops, it's not valid JSON.
        echo '<h2>'.'We\'re sorry. We are unable to list jobs right now. Please contact'.' <a href="mailto:careers@domain.com">careers@domain.com</a>'.'</h2>';
     }
  ?>

有没有办法可以解析无效的JSON?看来某处有一个意想不到的支架。

1 个答案:

答案 0 :(得分:0)

json_decode 因某种原因失败了。 您是否真的想要对格式错误的数据进行反序列化,并进一步根据此类数据建立逻辑

同样,在手动解码任何内容之前,请检查以下内容:

  • 服务器是否返回以您的应用程序不期望的编码进行字符编码的数据。特别是如果您的后端在基于Linux的服务器上运行,而在Windows上运行第三方API
  • JSON是否未被应用程序内部逻辑进一步编码。一个很好的尝试是检查编码的html实体和/或用 html_entity_decode()
  • 解码它们

根据我的经验 - 如果这些问题仍然存在,请尝试使用一个包装器,它可以自动执行前面提到的步骤(以及翻译的半json表达式,如mongodb查询,javascript表达式):

https://github.com/zendframework/zend-json