当前位置: 首页 > 面试题库 >

json_decode()返回空问题

柳经纶
2023-03-14
问题内容

我的JSON有问题。它可以在PHP
5.3中正确返回(因此我不能使用json_last_error()),并且在我将字符串显式复制到json_decode(json_decode(’{…}’)中时成功返回。结果作为变量,我正在使用php
5.2,这是我需要的。

输出来自PHPUnit中的JSON日志记录:

[
    {
        "event": "suiteStart",
        "suite": "",
        "tests": 2
    },
    {
        "event": "suiteStart",
        "suite": "TagTestCase",
        "tests": 2
    },
    {
        "event": "test",
        "suite": "TagTestCase",
        "test": "TagTestCase::test_it",
        "status": "fail",
        "time": 0.00248718261719,
        "trace": [
            {
                "file": "\/UnitTest\/PHPUnit.php",
                "line": 98,
                "function": "run",
                "class": "PHPUnit_Framework_TestSuite",
                "type": "->",
                "args": [
                    {

                    }
                ]
            },
            {
                "file": "\/UnitTest\/PHPUnit.php",
                "line": 116,
                "function": "run",
                "class": "PHPUnit",
                "type": "->",
                "args": [

                ]
            },
            {
                "file": "\/UnitTest\/PHPUnit.php",
                "line": 212,
                "function": "__tostring",
                "class": "PHPUnit",
                "type": "->",
                "args": [

                ]
            }
        ],
        "message": "false assertionzzzzz.\nFailed asserting that <boolean:false> is true."
    },
    {
        "event": "test",
        "suite": "TagTestCase",
        "test": "TagTestCase::test_two",
        "status": "pass",
        "time": 0.00182914733887,
        "trace": [

        ],
        "message": ""
    }
]

编辑:这些是我一直在探索的路径-也许您是一个更好的探索者。.三种可能的路径可以帮助您:

  • PHP 5.2和5.3中的json_decode()有何不同?他们改变了什么?
  • 其他人使用PHPUnit中的JSON及其解析方式。
  • 将其包含在变量中与将其打印到屏幕上并将其复制到json_decode()相比会发生什么变化

任何帮助将不胜感激。

谢谢!马特


问题答案:

多么糟糕的调试会话..好消息。.我弄清楚了..

我开始使用AJAX进行查看,并使用Firebug对其进行记录…,结果json_decode(或顺便说是eval)无法处理&quot;,这就是PHPUnit发送回去的内容(请塞巴斯蒂安来!),因此要对其进行修复:

$json = str_replace('&quot;', '"', $json);

现在我以为他们是一样的..也许有人可以启发我..



 类似资料:
  • 问题内容: 我从python接收到一个json数组,作为PHP中curl_exec的返回(第一个json PHP-> python,它返回另一个json),并且由于语法错误而解码失败。收到的json是有效的,但是以某种方式,如果我将此json转换为字符串并将其打印,则会得到一个包含29个字符的字符串,但是如果我打印strlen((string)$ my_json),它将显示50。 这是代码: 然后

  • 问题内容: 我将这个JSON对象存储在纯文本文件中: 当我尝试用解码时,它返回NULL。为什么?该文件是可读的(我尝试了回显,但工作正常)。 我已经针对http://jsonlint.com/测试了JSON ,它是完全有效的。 怎么了 问题答案: 它可以是特殊字符的编码。您可以要求 json_last_error() 获得确切的信息。 更新:问题已解决,请查看问题中的“解决方案”段落。

  • 正在尝试检索mp3信息(唱片名,…)使用MediaMetadataRetriever。在模拟器中,它运行良好。在我的设备上,大多数方法都返回null。 MediaMetadataRetriever mmr=新的MediaMetadataRetriever();嗯。setDataSource(songPath); 字符串albumName=mmr。extractMetadata(MediaMetad

  • 问题内容: 和存在一种奇怪的行为,json_encode而json_decode我找不到解决方案: 我的php应用程序调用了php Web服务。Web服务返回的json如下所示: 现在我想在应用程序中解码json: 但它返回NULL: 我使用php5。来自Web服务的响应的也尝试使用 可能是什么原因? 问题答案: 编辑: 只是做了一些快速检查由OP提供的字符串。大括号前面的小“字符”是。我不知道为

  • 问题内容: 我将这个JSON对象存储在纯文本文件中: 当我尝试使用解码时,它返回NULL。为什么?该文件是可读的(我尝试了回显,但工作正常)。 我已经针对http://jsonlint.com/测试了JSON ,它非常有效。 怎么了 在Google上寻找答案,我回到SO:调用webservice后json_decode返回NULL。我的JSON文件具有UTFBOM序列(一些不应包含的二进制字符),

  • 问题内容: 和存在一种奇怪的行为,而我找不到解决方案: 我的php应用程序调用了php Web服务。Web服务返回的json如下所示: 现在我想在应用程序中解码json: 但它返回: 我使用php5。来自Web服务的响应的Content-Type :(也尝试使用) 可能是什么原因? 问题答案: 编辑: 只是做了一些快速检查由OP提供的字符串。大括号前面的小“字符”是UTF-8 B(yte)O(rd