包含另一个jsonstring的jsonstring上的PHP json_decode

时间:2018-10-18 08:48:30

标签: php json

我正在为我们的软件开发日志记录工具,但遇到了json_decode返回null的问题,我希望得到一些帮助。

json对象如下所示:

   .logout().permitAll();

问题出在request-> body部分。由于它是一个json对象,但另存为带有引号的字符串,因此它似乎与json_decode函数混为一谈,并且返回null。

编辑日志条目以删除请求中正文jsonstring周围的引号会使它通过,但是这是它的记录方式,我不希望潜在地不得不重写记录代码。因此,在这一点上,任何帮助都非常欢迎。

编辑所使用的真实JsonString。但是,删除了身份验证和URL。

{
    'id': 'string',
    'request': {
        'headers': {
            ...
        },
        'body': 'jsonstring'
    },
    'response' {
        ...
    },
}

1 个答案:

答案 0 :(得分:-1)

使用jsonlint.com或类似的检查语法,如果json_decode返回null,那是因为您提供的任何内容都不是有效的json。 Protip,将您的数据解析为普通的php数组,并在末尾仅json_encode。如果您有传入的json数据,请使用

json_decode($json, true);

将其作为数组与对象进行处理。仅使用数组并在事实发生后将它们包容起来要容易得多。

编辑:

"body": "{

是看到完整字符串时遇到的问题,您在请求的body对象之前添加了一个“。在linter中对其进行解析,它是一个无效的json对象(并且感谢那些拒绝此答案的人,请自己将其换成Lint :P)