json字符串中存在常规的用户输入的字符串,和很多的富文本样式标签(用户不能直接看到,点击富文本编辑器中的html源码按钮能看到),例如下面的:

<p><strong>富文本&lt;&gt;sad&lt;span&gt;adzx我是用户输入</strong></p>

<p><span><span style="font-family:微软雅黑, 'microsoft yahei';">富文本&lt;&gt;sad&lt;span&gt;adzx我是用户输入</span><br /></span></p>

例如存在这种情况,需要把上面的这段字符串通过一个json格式,post到服务器端,假设这段字符串被赋给变量a :

post的参数的结构是这样的:

{ "params": { "content": a }}

有个前提是,往后端post的文本内容,是需要包含富文本样式的,这也就是为什么要使用富文本编辑器的目的。

可以注意到,上面的字符串中,黑色加粗部分,富文本编辑器会自动进行encodeHTML操作,也就是常规的用户输入的字符串,而红色细字部分是属于富文本样式标签部分。

样例中,富文本区域包含:<span style="font-family:微软雅黑, 'microsoft yahei';">这种字符串,由于采用的json格式向后端post数据,所以需要注意转义这里面的双引号",否则会引起后端解析json出错,所以做了一下转义,把单个双引号变成了 \\\" 这种形式(因为还涉及到encodeURI和decodeURI的操作)。

同时,用户也可能会输入单个的或多个的\反斜杠(转义符),所以又对它做了同样的转义处理,把单个的反斜杠,变成了 \\\\ 这种形式。

归根到底是采用了json这种方式来向服务器post大量的数据(富文本数据),所以涉及到双引号和反斜杠这两个特殊字符的处理。

采用Json字符串,往服务器回传大量富文本数据时,需要注意的地方,最近开发时遇到的问题。的更多相关文章

  1. 富文本数据 解析HTML

    后台返回给前端的富文本数据如: { "status": 1, "info": "获取活动数据成功", "data": [ ...

  2. ajax获取富文本数据无法正常渲染到页面问题

    有时候富文本渲染到页面的时候 会连带标签一起渲染出来. 解决办法: 首先引用    <script src="https://cdn.jsdelivr.net/npm/fuwenben ...

  3. JAVAEE——宜立方商城04:图片服务器FastDFS、富文本编辑器KindEditor、商品添加功能完成

    1. 学习计划 1.图片上传 a) 图片服务器FastDFS b) 图片上传功能实现 2.富文本编辑器的使用KindEditor 3.商品添加功能完成 2. 图片服务器的安装 1.存储空间可扩展. 2 ...

  4. SolrCloud索引富文本数据

    solrconfig配置文件: schema配置文件: 执行目录: /opt/solr-5.5.4/server/scripts/cloud-scripts -- 下载配置文件 ./zkcli.sh ...

  5. SpringBoot中Post请求提交富文本数据量过大参数无法获取的问题

    yml增加配置 # 开发环境配置 server: tomcat: max-http-form-post-size: -1

  6. 对Json字符串进行格式化显示

    很多时候,我们拿Json字符串作为返回结果,但是当数据量多的时候,一堆的Json字符串看起来很不直观,这时候我们可以使用以下办法将Json字符串格式化一下再输出 var JsonUti = { //定 ...

  7. ASP.NET用SQL Server中的数据来生成JSON字符串

    原文引自:  作者: 缺水的海豚  来源: 博客园  发布时间: 2010-09-21 21:47  阅读: 6136 次  推荐: 0   原文链接   [收藏] 摘要:ExtJs用到的数据内容基本 ...

  8. 推荐一款JSON字符串查看器

    JSON Viewer是一款方便易用的Json格式查看器.Json格式的数据阅读性很差,如果数据量大的话再阅读方面会十分困难,有了这软件,问题就解决了,能够快速把Json字符串排列规则的树结构,支持对 ...

  9. 服务端JSON内容中有富文本时

    问题背景 由于数据中存在复杂的富文本,包含各种引号和特殊字符,导致后端和前端通过JSON格式进行数据交互引发前端JSON解析出错. 解决方案 后端将富文本内容 ConvertToBase64Strin ...

随机推荐

  1. Ubuntu 13.10 Rhythmbox 播放器不能播放MP3。安装插件

    Ctrl+Alt+T > sudo apt-get install ubuntu-restricted-extras 因为版权和专利的问题,MP3等一些non-free的格式文件支持没有出现在免 ...

  2. iOS UIKit:TabBar Controller

    1 结构剖析 IOS中的标签导航其实是一个UITabBarController对象,其也是一个Container View Controller.UITabBarController对象创建和管理了一 ...

  3. 一个小时成功安装SQL Server 2012图解教程

    在安装微软最新数据库SQL Server 2012之前,编者先确定一下安装环境:Windonws 7 SP1,32位操作系统.CPU是2.1GHz赛扬双核T3500,内存2.93GB. 安装SQL S ...

  4. Linux查看当前系统登录用户、登录日志、登录错误日志

    1.查看当前系统的登录用户 w who 2.查看成功登录历史记录 last -n 3.查看尝试登录失败的历史记录 lastb -n 4.显示每个用户最近一次登录成功的信息 lastlog

  5. 在iis中mantisbt配置过程

    最近需要安装个mantisbt,由于不想再安装个apache服务器,因此直接使用iis作为php解析服务器.同时为了方便管理安装包,将php安装包和扩展包能够独立存放在D:\Program Files ...

  6. 各种SQL类型

    一.SQL:通常我们说的sql指的是最古老运用最方法的结构化查询语言(Structured Query Language),大部分人接触最多的是数据库查询使用,关系型数据库基本都支持. 二.T-SQL ...

  7. 多个互相有联系的checkbox的单选逻辑

    checkbox单选的状态逻辑,状态好的时候一下就写好了,状态不好的时候要调试比较久,当然主要是对其中的事件不太清楚. 先给出效果图吧. 然后给出代码, selectZhiFuBaoPay.setOn ...

  8. servlet(一)

    百度百科是这样的: Servlet 是在服务器上运行的小程序.这个词是在 Java applet 的环境中创造的.虽然后者已很少被使用,但 Servlet 却发展的很好.是一般面试都会常考的知识. 维 ...

  9. 查看xcode的路径

    sudo /usr/libexec/locate.updatedb locate liblaunch_sim

  10. CABasicAnimation添加动画离开屏幕就动画停止的问题

    解决方法: animation.removedOnCompletion = NO;