【发布时间】:2014-10-24 14:23:57
【问题描述】:
我是 JSON 格式的新手,所以请原谅我缺乏知识。但不知何故,我需要在我的 json_encode 数组中添加一些换行符,以便它可以解析多行。我已经搜索和搜索,但没有什么适合我的情况。
输出为:
Following formats accepted: www.website.com website.com website.net/something
但我希望像这样输出数据:
Website needs to be in the following formats:
www.website.com
website.com
website.net/something
我试过了:
echo json_encode(
array( 'status' => 'failed',
'message' => "Website needs to be in the following formats:\n
www.website.com\n
website.com\n
website.net/something"
), JSON_PRETTY_PRINT);
但 Javascript 将其解析为文字字符串,因此换行符被忽略并输出。我可以使用直接 JSON 格式将数据从 PHP 发送到 javascript,还是必须使用数组?
我也尝试过使用<br />。
编辑:
我正在输出以下方式:
$.ajax({
url: "/forms/content_process.php",
type:'POST',
data: $(".content_cat").serialize(),
processData: false,
dataType: "json",
success: function(response) {
if (response.status == "failed") {
$(".content_status").css( "background-color", "red" );
$(".content_status").text(response.message).slideDown("normal");
} else {
$(".content_status").css( "background-color", "green" );
$(".content_status").text("Your category was submitted!").slideDown("normal");
}
}
});
【问题讨论】:
-
除了无效的双重转义外,您已经通过将字符串包装成多行来嵌入换行符。而是查看输出的 JSON 及其用途,并详细说明它与您的预期有何不同。
-
@Charlotte Dunois - 我试过 \n 和 \\n
-
尝试组合选项
json_encode($your_array, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) -
你想如何输出消息?如果它被插入到 DOM 中,大多数元素会将空格(包括换行符)压缩为一个空格。
<pre>和其他样式以white-space为典型例外。 -
将 \\n 替换为
,因为
是 (X)HTML 中的新行。
标签: javascript php jquery json