Gson解析Json数据内有非法字符("",回车,etc)时的解决办法

原创 2016年06月01日 11:31:03

如果所示,json数据内有回车,这时候用Gson解析是会出现错错误的

如图所示


可以进行如下操作(其中content是完整的json数据)

  1. 转义回车
    转移回车
  2. 转义换行
    这里写图片描述
  3. 其他如此类推

还有一个关键的地方,如果json的value值中有”“,也是会出现解析错误的,那么我们可以将”“转变为中文的双引号

将英文引号转为中文的引号方法

private static String jsonString(String s) {
        char[] temp = s.toCharArray();
        int n = temp.length;
        for (int i = 0; i < n; i++) {
            if (temp[i] == ':' && temp[i + 1] == '"') {
                for (int j = i + 2; j < n; j++) {
                    if (temp[j] == '"') {
                        if (temp[j + 1] != ',' && temp[j + 1] != '}') {
                            temp[j] = '”';
                        } else if (temp[j + 1] == ',' || temp[j + 1] == '}') {
                            break;
                        }
                    }
                }
            }
        }
        return new String(temp);
    }

关于Gson解析时候特殊符号,被转义的问题,如’单引号

//Creating the JSON object, and getting as String: JsonObject json = new JsonObject(); JsonObject in...
  • z69183787
  • z69183787
  • 2013年12月24日 19:25
  • 7887

Gson库和Android自带JSON解析对转义字符的处理存在不同

遇到一坑,以前用的是Gson库,现在改为Android自带的JSON解析,后端收到数据有时会解析失败,查找原因,发现Gson库和Android自带JSON解析对转义字符的处理存在稍许的不同。举例如下:...
  • hello2mao
  • hello2mao
  • 2016年11月23日 15:14
  • 2610

特殊字符导致json字符串转换成json对象出错

在对数据库取出来的数据(特别是描述信息)里面含有特殊字符的话,使用JSON.parse将json字符串转换成json对象的时候会出错,主要是双引号,回车换行等影响明显,左尖括号和右尖括号也会导致显示问...
  • dotNET25
  • dotNET25
  • 2014年04月25日 15:42
  • 50490

Gson-记录一个空格引发的json血案

使用的Gson将json自动装载到Bean,一般情况下,用起来又快又稳。 直到有一天,测试告诉我说,填写地址时,地址里有空格,就会500异常。 我把异常截取出来: Type Exception ...
  • zzxx1994617
  • zzxx1994617
  • 2017年07月05日 11:08
  • 762

Gson 2 --GsonBuilder

上一篇说到创建Gson实例,使用new Gson(),此时会创建一个带有默认配置 选项的Gson实例,如果不想使用默认配置,那么就可以使用GsonBuilder。 使用GsonBuilder创建G...
  • Caesardadi
  • Caesardadi
  • 2014年03月06日 11:23
  • 8955

android开发 GSON和JsonObject互相转换时Base64字符串末尾自动添加了换行符的问题

app登录接口账户和密码是采用Base64转码的,请求服务器是采用的json参数,使用GSON把Json请求对象转为json String,如图: 首先google了一下,也没有相关问题,后来猜...
  • pkandroid
  • pkandroid
  • 2017年01月05日 17:38
  • 1392

接口返回的 json数据中含有双引号 或其他非法字符的解决办法

最近做一个新闻客户端 ,需要解析接口数据,格式json。  但是数据源中含有双引号 ,导致fastjson ,gson等都解析失败 如下: {"result":{"stat":"200","remar...
  • ymlkl
  • ymlkl
  • 2014年12月16日 13:50
  • 7937

Gson 的tojson方法 特殊字符 ' ' < > 转换问题

Gson gson = new Gson(); String datas = gson.toJson(dataList) 用谷歌的Gson 把集合转换为字符串,当集合中数据有特殊字符...
  • hepann44
  • hepann44
  • 2016年11月14日 15:51
  • 1986

【前端JQuery】回调获取json中包含换行符出现问题解决

Ajax回调函数,取到服务器端返回的json数据时 如果有回车符(\r\n),客户端解析会出错:unterminated string literal  所以在这之前先将回车符替换掉才行。 ...
  • hj7jay
  • hj7jay
  • 2017年07月04日 09:30
  • 1586

利用GSON解析简单Json字符串

之前一直使用fastjson来解析json串,性能高,上手快,简单易学不错的! 最新听说fastjson爆出一个安全漏洞,只能寻找新的json库替代,就找到了gson,google开发的一款解析js...
  • shawhe
  • shawhe
  • 2017年03月29日 17:47
  • 841
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Gson解析Json数据内有非法字符("",回车,etc)时的解决办法
举报原因:
原因补充:

(最多只允许输入30个字)