一尘不染

json_decode()返回空问题

json

我的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()相比会发生什么变化

任何帮助将不胜感激。

谢谢!马特


阅读 188

收藏
2020-07-27

共1个答案

一尘不染

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

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

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

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

2020-07-27