基于 Flask 和 Vue 的前后端分离页面,后端使用富文本编辑器后保存的包含富文本的数据如何通过 JSON 接口传输。
目前想到的方案:
一个疑问:
1
jinksw 2019-07-09 14:43:32 +08:00
不是很懂
你自己手动拼接的 json 吗? 那样才涉及你自己去转义吧? |
2
Mutoo 2019-07-09 14:46:52 +08:00 1
A1:JSON 是一种跨语言的协议,所以规范里规定 key 以及 string 都用双引号包围。以更好的兼容不同语言的解释器。
至于你的问题,应该是如何正确将 HTML 文档存到字符串中。可以参考这篇文章: https://www.thorntech.com/2012/07/4-things-you-must-do-when-putting-html-in-json/ 前端 vue 可以用 v-html 直接引用这个字符串即可。但还需要考虑安全问题,防止 XSS。 https://github.com/vuejs/vue/issues/6333 |
3
zjyl1994 2019-07-09 14:50:18 +08:00
嗯?你的 json 是手拼的?我们 json 都会自动处理转义啊?
|
4
icy37785 2019-07-09 14:54:38 +08:00 via iPhone
json 的转义不都是自的么。你手拼的话容易出错呀,还是让他自动转吧。
|
5
mnssbe 2019-07-09 15:02:14 +08:00 2
这时候可以用到“加密算法” base64 来解决你的烦恼
|
7
est 2019-07-09 15:17:57 +08:00 1
富文本有多富?
一般空格换行直接 <pre> 梭哈就行了。 |
8
sugarkeek OP @icy37785 #4 不知道原来能自动转义,我一直以为 json 里传特殊符号会可能会引起歧义,一直都是没敢加。我试试吧。
|
10
IsaacYoung 2019-07-09 15:21:45 +08:00
{
html: "<div></div>" } |
13
zjyl1994 2019-07-09 15:43:55 +08:00
@chenkeyan1 正常的 json 处理库都会自动转义的,不需要你自己操心
|
14
Asice 2019-07-09 17:26:16 +08:00
感觉要发明个三引号,引号不够用
|
15
doublleft 2019-07-09 17:30:55 +08:00
js 处理可以 split 一下 \r \n 这种的,起码换行就搞定了
|
16
est 2019-07-09 18:19:33 +08:00
@chenkeyan1 那就<pre> 就行了。
|