Java 处理json字符串value中多余的双引号
转:
Java 处理json字符串value中多余的双引号
一、错误场景
json字符串的value值中有多余的双引号
1、直接上错误的json字符串

|
1
|
String errorJsonStr = "{\"userName\":\"瑞文\"绿色\",\"hero\":\"f放逐之刃\" 盘子\"}"; |
二、处理方案
1、第一种 :
1、 将 {" 替换为 {% // % 也可以是其他字符,自己认识就好,但是要注意要处理的字符串中不包含你要换成的这个特殊字符
将 ":" 替换为 %:%
将 ”, 替换为 %,
2、 将多余的 双引号替换为空字符串
2、第二种(推荐使用此方法):
自己写个方法将value值中多余的双引号替换为 中文双引号,直接上代码:

public class MainTest {
public static void main(String[] test) {
String errorJsonStr = "{\"userName\":\"瑞文\"绿色\",\"hero\":\"f放逐之刃\" 盘子\"}";
errorJsonStr = toJsonString(errorJsonStr);
System.out.println(errorJsonStr);
}
// 处理json字符串中value多余的双引号, 将多余的双引号替换为中文双引号
private static String toJsonString(String s) {
char[] tempArr = s.toCharArray();
int tempLength = tempArr.length;
for (int i = 0; i < tempLength; i++) {
if (tempArr[i] == ':' && tempArr[i + 1] == '"') {
for (int j = i + 2; j < tempLength; j++) {
if (tempArr[j] == '"') {
if (tempArr[j + 1] != ',' && tempArr[j + 1] != '}') {
tempArr[j] = '”'; // 将value中的 双引号替换为中文双引号
} else if (tempArr[j + 1] == ',' || tempArr[j + 1] == '}') {
break;
}
}
}
}
}
return new String(tempArr);
}
}

Java 处理json字符串value中多余的双引号的更多相关文章
- jquery的JSON字符串处理、单引号双引号的转换
1.jquery的JSON字符串处理 var pwdlevel_val = "{"minLength":1,"maxLength":20," ...
- java解析Json字符串之懒人大法
面对Java解析Json字符串的需求,有很多开源工具供我们选择,如google的Gson.阿里巴巴的fastJson.在网上能找到大量的文章讲解这些工具的使用方法.我也是参考这些文章封装了自己的Jso ...
- Json-lib 进行java与json字符串转换之一
这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下. 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.J ...
- Java解析json字符串和json数组
Java解析json字符串和json数组 public static Map<String, String> getUploadTransactions(String json){ Map ...
- python笔记22-literal_eval函数处理返回json中的单双引号
前言 在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常 ...
- 公式中表达单个双引号【"】和空值【""】的方法及说明
http://club.excelhome.net/thread-661904-1-1.html 有人问为什么不用三个双引号"""来表示单个双引号["]呢,如果 ...
- java 获取json字符串中key对应的值
用到了Gson的JsonParser maven项目引入 <dependency> <groupId>com.google.code.gson</groupId> ...
- Java解析Json字符串--复杂对象
{ "name": "三班", "students": [ { "age": 25, "gender" ...
- Json-lib 进行java与json字符串转换之二
二.list和json字符串的互转 list-->>json字符串 public static void listToJSON(){ Student stu=new Student(); ...
随机推荐
- for,foreach,$.each()跳出循环的比较
说起跳出循环,第一时间想起的是 break \ continue,这是经典的for循环. 1.for 循环 先上例子,思考输出结果,体会 break 与 continue 的不同. 1 var arr ...
- Mybatis-Generator逆向工程,简单策略
1.下载generator包 https://github.com/mybatis/generator/releases mybatis-generator-core-1.3.6.zip 官网下载即可 ...
- vue-cli 创建项目不成功 原因为项目文件夹无node_modules文件 进行npm install不成功解决办法
不知道有没有童鞋出现过全局安装vue-cli是成功的,但是创建项目时命令行报了很多错误,如下 本来是需要按照提示依次切换到项目文件夹,再npm run dev 即可完成项目创建并启动的,但是又报了如下 ...
- LightOJ-1020-A Childhood Game(博弈)
链接: https://vjudge.net/problem/LightOJ-1020 题意: Alice and Bob are playing a game with marbles; you m ...
- [NgRx] NgRx Runtime Checks
Turn on runtime check: @NgModule({ declarations: [AppComponent], imports: [ ..., StoreModule.forRoot ...
- mysql kill所有Sleep/Execute进程
现查出需要kill的进程: SELECT GROUP_CONCAT(CONCAT('kill ',id) SEPARATOR '; ') AS cmd FROM information_schema. ...
- 三十二. 多表查询 MySQL管理工具 、 用户授权及撤销
1.MySQL管理工具 部署LAMP+phpMyAdmin平台 安装httpd.mysql.php-mysql及相关包 启动httpd服务程序 解压phpMyAdmin包,部署到网站目录 配置conf ...
- vue 的 watch 如何在初始化时执行
之前的做法一直是在 created 钩子之后手动调用一次 created() { this.fetchText(); }, watch: { text: 'fetchText', } 后来在翻阅文档的 ...
- LibreOJ #6217. 扑克牌
二次联通门 : LibreOJ #6217. 扑克牌 /* LibreOJ #6217. 扑克牌 背包.... 回到家之后简直了...sb题想半天 */ #include <cstdio> ...
- @Autowired 与@Resource的区别详解
spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@PostConstruct以及@PreDestroy. @Resour ...