GET 请求中的 JSON 格式错误

HTTP:retry我在使用(或任何其他方法)获取 JSON 文件时遇到一些问题。->body();当我执行此操作时,JSON 文件最终看起来如下图所示dd()

https://img4.mukewang.com/64d5fb4c0001c93d03080624.jpg

我尝试使用 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

}

}

"""


慕村9548890
浏览 111回答 1
1回答

潇湘沐

问题似乎是格式错误的 UTF-8 或其他问题它是用这个简单的 oneliner 修复的:mb_convert_encoding($temps->body(), 'UTF-8', 'UTF-8')。转储中的特殊字符和奇怪的插件似乎是 Laravel 在dd()谢谢大家的建议!
打开App,查看更多内容
随时随地看视频慕课网APP