如何在 PHP 中将无效的 JSON 格式化为正确的 JSON 格式?

How to format the invalid JSON to a proper JSON format in PHP?

以下 json 字符串在执行 json_decode() 时产生问题。在删除空格、斜杠、\n 时,它正在工作。有人可以建议吗?

  {\n   \"long_format\":{\n      \"date\":\"DD/MM/YYYY\",\n      \"time\":\"H:mm:ss\",\n      \"date_time\":\"DD/MM/YYYY H:mm:ss\"\n   },\n   \"short_format\":{\n      \"date\":\"DD/MM/YY\",\n      \"time\":\"hh:mm:ss A\",\n      \"date_time\":\"DD/MM/YY hh:mm:ss A\"\n   }\n}

您可以使用preg_replace()

$string = preg_replace(array('/\\n\s+/m','/\\n/m','/\\"/m'), array('','','"'), $string);
print_r(json_decode($string,true));

输出:https://3v4l.org/GQhTO

注意:最好更正创建此 json 数据的源代码,以防您可以控制它。