【发布时间】:2020-11-08 15:37:06
【问题描述】:
我在使用 HTTP:retry(或任何其他方法)获取 JSON 文件时遇到了一些问题。当我执行->body(); 然后dd() 它时,JSON 文件最终看起来如下图所示:
我尝试使用 preg_replace 进行一些清理(但不太擅长正则表达式),似乎部分有效:
preg_replace( "/\r|\n/", "", $data );
因为 JSON 看起来像这样,所以不可能做到 ->json(); 它只是返回 null 然后我然后 dd() 它。我怎样才能正确地“清理”它,以便可以将结果作为普通 JSON 文件访问?
这是文本输出(缺少换行符 (\n):
b"""
{
"devname":"Event Telt",
"devsn":"18940256",
"time":"14:54:53 2020-07-18",
"timeunix":"1595084093",
"synch":"1",
"ch1":
{
"name":"Temp Dataskap",
"unit":"°C",
"aval":"19.1",
"alarm":0
},
"ch2":
{
"name":"Temp Rom",
"unit":"°C",
"aval":"17.4",
"alarm":0
},
"ch3":
{
"name":"Fukt Rom",
"unit":"%RH",
"aval":"77.0",
"alarm":1
},
"ch4":
{
"name":"Channel 4",
"unit":"",
"aval":"n/a",
"alarm":0
},
"ch5":
{
"name":"Channel 5",
"unit":"",
"aval":"n/a",
"alarm":0
}
}
"""
【问题讨论】:
-
您能否将输出显示为文本而不是图像,因为它更易于其他人使用。
-
当然@NigelRen,已添加。虽然它错过了图像显示的换行符 (\n)。感谢您提供任何修复建议
-
不确定是不是
dd(),但好像开头和结尾有多余的",试试trim('"', $json)(如果是这种情况,最好从源头解决问题)。 -
也许共享用于生成此输出的代码会有用?
-
这个输出是由我无法控制@ProfessorAbronsius 的外部程序生成的,遗憾的是建议的修剪没有做出改变......
标签: php json regex laravel get