我正在为我们的软件开发日志记录工具,但遇到了json_decode返回null的问题,我希望得到一些帮助。
json对象如下所示:
.logout().permitAll();
问题出在request-> body部分。由于它是一个json对象,但另存为带有引号的字符串,因此它似乎与json_decode函数混为一谈,并且返回null。
编辑日志条目以删除请求中正文jsonstring周围的引号会使它通过,但是这是它的记录方式,我不希望潜在地不得不重写记录代码。因此,在这一点上,任何帮助都非常欢迎。
编辑所使用的真实JsonString。但是,删除了身份验证和URL。
{
'id': 'string',
'request': {
'headers': {
...
},
'body': 'jsonstring'
},
'response' {
...
},
}
答案 0 :(得分:-1)
使用jsonlint.com或类似的检查语法,如果json_decode返回null,那是因为您提供的任何内容都不是有效的json。 Protip,将您的数据解析为普通的php数组,并在末尾仅json_encode。如果您有传入的json数据,请使用
json_decode($json, true);
将其作为数组与对象进行处理。仅使用数组并在事实发生后将它们包容起来要容易得多。
编辑:
"body": "{
是看到完整字符串时遇到的问题,您在请求的body对象之前添加了一个“。在linter中对其进行解析,它是一个无效的json对象(并且感谢那些拒绝此答案的人,请自己将其换成Lint :P)