温馨提示:本文翻译自stackoverflow.com,查看原文请点击:php - SyntaxError: JSON.parse: expected when using a URL in json output
json php

php - SyntaxError:JSON.parse:在json输出中使用URL时预期

发布于 2020-03-31 23:26:00

我在使用包含URL的PHP​​观看JSON输出时遇到问题,我的代码如下:

 <?php
   $url = "http://1.2.3.4:8080";
   Header('Content-type: application/json');
 ?>{"status" : "URL" : "<?php echo $url ?>"}

我的输出是:

 {"status" : "URL" : "http://1.2.3.4:8080
 "} 

这给出了错误信息:

SyntaxError:JSON.parse:在JSON数据的第1行第19行的对象中,属性值之后应为','或'}'。

我要更改$url = "http://1.2.3.4:8080";$url = "test";它可以工作

如何更改此设置,以便URL也能正常工作?

查看更多

提问者
Colin
被浏览
10
mitkosoft 2020-01-31 19:55

让我们玩一些基础知识,而不是重新发明轮子:

<?php
    $url = "http://1.2.3.4:8080";
    Header('Content-type: application/json');
    $arr = array('status'=>'success', 'url'=>$url);
    echo json_encode($arr, JSON_UNESCAPED_SLASHES);
?>

输出:

{"status":"success","url":"http://1.2.3.4:8080"}

如果字符串中确实有新行,则可以在将值添加到JSON之前对其进行转义:

$url = str_replace(array("\r\n", "\n", "\r"), "", $url);

愿原力与你同在。