- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从系统中导出数据并获取该内容 block ,如何删除换行符,使其成为一行。
我尝试了各种方法,例如“jsonData.replace(/[\r\n]+/g, '\n\n');
”,但似乎没有任何效果。
{"pageUrl":"/about","name":"About Us","content":"\n \n \n
\n
About
\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\n \n"}
这是完整的代码,上面只是json文件中的一项
function list_pages(){
var access_token = BCAPI.Helper.Site.getAccessToken();
var request = $.ajax({
url: "/webresources/api/v3/sites/current/pages?fields=pageUrl,name,content",
type: "GET",
connection: "keep-alive",
contentType: "application/json",
headers: {
"Authorization": $.cookie('access_token')
}
});
request.done(function (msg) {
var myJSONString = JSON.stringify(msg.items);
**var myEscapedJSONString = myJSONString.replace(/[\r\n]/g, '');**
$( "#results" ).append( myEscapedJSONString );
})
request.fail(function (jqXHR) {
console.log("Request failed.");
console.log("Error code: " + jqXHR.status);
console.log("Error text: " + jqXHR.statusText);
console.log("Response text: " + jqXHR.responseText);
})
}
最佳答案
更新答案:
您对问题的编辑完全改变了它。你正在做replace
关于 JSON.stringify
的结果,这将永远生成问题中的 JSON(字符串中包含实际的回车符和/或换行符)。
在评论中,您说过您的目标是查看格式化的 JSON 数据。为此:
JSON.stringify
通过添加 null, n
来格式化它调用电话,其中 n
是你想要缩进的程度。例如:JSON.stringify(msg.items, null, 4)
.&
与 &
和<
与 <
(按顺序)。pre
之一的元素其 white-space
的设置CSS 设置(例如 pre
元素,但您也可以使用 CSS 来完成)所以:
var htmlToDisplay = jsonData
.replace(/&/g, "&")
.replace(/</g, "<");
...然后将其放入 white-space: pre
的元素中.
示例:
var msg = {
items: [
{
pageUrl: "/about",
name: "About Us",
content: "\n \n \n \n About\n Lorem ipsum dolor sit amet, consectetur adipisicing elit..."
}
]
};
var jsonData = JSON.stringify(msg.items, null, 4);
var htmlToDisplay = jsonData
.replace(/&/g, "&")
.replace(/</g, "<");
$("#results").append(htmlToDisplay);
#results {
white-space: pre;
font-family: monospace;
}
<div id="results"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
white-space
还有其他设置你可以尝试,比如pre-wrap
:
var msg = {
items: [
{
pageUrl: "/about",
name: "About Us",
content: "\n \n \n \n About\n Lorem ipsum dolor sit amet, consectetur adipisicing elit..."
}
]
};
var jsonData = JSON.stringify(msg.items, null, 4);
var htmlToDisplay = jsonData
.replace(/&/g, "&")
.replace(/</g, "<");
$("#results").append(htmlToDisplay);
#results {
white-space: pre-wrap;
font-family: monospace;
}
<div id="results"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
原始答案:
您不想用换行符替换那些无效的换行符;你想用任何东西替换它们:
jsonData = jsonData.replace(/[\r\n]/g, '');
let jsonData = document.getElementById("the-json").textContent;
jsonData = jsonData.replace(/[\r\n]/g, '');
console.log(JSON.parse(jsonData));
<script id="the-json" type="text/json">{"pageUrl":"/about","name":"About Us","content":"\n \n \n
\n
About
\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\n
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\n \n"}</script>
关于javascript - json 文件中的换行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50985454/
在 Vaadin 7.0,显示时JavaBean Table 中的数据与 BeanContainer ,用新数据刷新表的正确方法是什么? 最佳答案 该表通过监听器监视表项的属性。如果您通过表的 Ite
首先,我使用的是带有 Axis2 1.6.2 的 eclipse,我正在 tomcat 6 上部署我创建的 Web 服务。Web 服务是在 eclipse 中通过自上而下的方法创建的。 我被要求使对我
我已将 Rails 3.1.1 应用程序升级到 Rails 3.1.3,现在,对于每个请求,它仅响应错误数量的参数(3 for 1)。不幸的是,它没有说明错误在哪里,并且应用程序跟踪为空。我认为存在一
我是一名优秀的程序员,十分优秀!