使用gson在解析unicode时遇到的问题
之前在用gson解析的时候未记录下来,所以今天做一个小的总结,
比如遇到像这种"\u003d"的unicode的字符,我们想解码这个字符,用gson可以这样表达
Gson gson=new Gson();
String s2 = "\"{\\\"hi\\\":\\\"\\u003d\\\"}\"";
System.out.println("s2:"+s2);
String s = gson.fromJson(s2, String.class);
System.out.println(s);
上面的输出结果为
s2:"{\"hi\":\"\u003d\"}"
{"hi":"="}
可见传入到json中的字符串必须是带转义字符的,且格式必须是正确的,否则会出错,
同样的,解码一个unicode字符也可以使用URLDecoder,这个对unicode的直接解析比较方便。
代码如下:
String ss = URLDecoder.decode("\u003d","utf-8");
System.out.println(ss);
上面的代码输出如下:
=
该方法较上一种方便很多。
另外利用gson转换成json字符串的时候会自动编码特殊字符,如果要忽略此功能,则使用
new GsonBuilder().disableHtmlEscaping().create()
创建gson对象即可。
------------------------------------------------------------------------------------------------------
此处分割线,楼主最近又发现一个奇怪的问题,上面的URLDecoder中传入的如果是这种字面量,他是可以解析的,其实直接用java的println打出来也是中文,但是如果不是这种字面量,那问题就比较麻烦了,因为即使是一样的字符串,他也是不能解码的,,后来楼主在网上的一片博客中找到了另一种方法,即使用org.apache.commons.lang.StringEscapeUtils#unescapeJava(String) 这是使用apache提供的包里的工具,如果你的工程里没有引用这个,也不用担心,原博客提供了另外一种方法,此处贴上博客地址,http://blog.csdn.net/djun100/article/details/12128057 他好像也是转的,,,所以就找不到原作者了,,,,
使用gson在解析unicode时遇到的问题的更多相关文章
- Json,Gson,FastJson解析笔记
Json,Gson,FastJson解析笔记 1.将JavaBean转换成Json对象: public static String CreatJsonFromObject(Object key,Obj ...
- 使用Google 的 gson方式解析json
gson支持解析的类型还是比较全面的,包括JavaBean,List<JavaBean>,List<String>,Map等,使用起来也是比较方便,下面根据代码示例给出总结: ...
- dom4j解析xml时取消DTD验证
解决方式整合一下,就分两种: 1.用setFeature() SAXReader reader = new SAXReader();reader.setValidation(false); reade ...
- Gson全解析(中)-TypeAdapter的使用
TypeAdapter介绍 前面的Gson全解析(上)中我们理解并分别运用了JsonSerializer和JsonDeserializer进行JSON和java实体类之间的相互转化.这里利用TypeA ...
- thymeleaf 解析html时,出现 SAXParseException: The content of elements must consist of well-formed characte
thymeleaf 解析html时,出现 SAXParseException: The content of elements must consist of well-formed characte ...
- C# 解析excel时,字段内有内容,却读取不到的解决方法
C# 解析excel时,字段内有内容,却读取不到的解决方法:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ...
- Gson全解析(下)-Gson性能分析
前言 在之前的学习中,我们在Gson全解析(上)Gson使用的基础到分别运用了JsonSerializer和JsonDeserializer进行JSON和java实体类之间的相互转化. 在Gson全解 ...
- Gson全解析(上)-Gson基础
前言 最近在研究Retrofit中使用的Gson的时候,发现对Gson的一些深层次的概念和使用比较模糊,所以这里做一个知识点的归纳整理. Gson(又称Google Gson)是Google公司发布的 ...
- 在解析XML时要注意解析元素和解析标签属性的区别
解析元素时: Sting str = ele.elementText("name"); 而解析标签属性时: String key = ele.attributeValue(&quo ...
随机推荐
- ubuntu 15 安装cuda,开启GPU加速
1 首先要开启GPU加速就要安装cuda.安装cuda,首先要安装英伟达的驱动.ubuntu有自带的开源驱动,首先要禁用nouveau.这儿要注意,虚拟机不能安装ubuntu驱动.VMWare下显卡只 ...
- PL/SQL远程连接Oracle的方式,无需安装客户端
第一次用PL/SQL Developer这个非官方的软件,遇到了种种困难,幸好通过万能的Google已经全部解决,记录下来备察. 前提是保证你的远程oracle服务器一切正常. 微软客户端设置 使 ...
- Mac删除.DS_Store文件
1.删除.DS_Store文件 sudo find ./ -name ".DS_Store" -depth -exec rm {} \; 2.禁止生成此文件 defaults wr ...
- 用POI读取具有任意合并单元的excel数据
maven依赖: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</ ...
- 利用Maple推导向量方程的微分公式
在某些几何软件的开发中,会要求写出一个向量方程的微分公式.对我而言,手工推导繁琐.易出错.且需要反复校验. 早就听说Mathematica, Maple这样的软件可以自动进行符号公式的推导,一直没有时 ...
- ng animate
要在angular中加入动画必须引入angular.animate.js插件,然后就可以在module中引入ngAnimate模块.如: var module1 = angular.module('m ...
- JavaSE知识结构
- 关于启动 SecureCRT 遇到一个致命的错误且必须关闭
--------------------------SecureCRT---------------------------SecureCRT 遇到一个致命的错误且必须关闭. 一个崩溃转储文件已创建于 ...
- 两种方法实现用CSS切割图片只取图片中一部分
切割图片这里不是真正的切割,只是用CSS取图片中的一部分而已,主要有两种方式,一是做为某一元素的背景图片,二是用img元素的属性.下面有个不错的示例,大家可以参考下 切割图片这里不是真正的切割,只是用 ...
- 第四章 使用Docker镜像和仓库
第4章 使用Docker镜像和仓库 回顾: 回顾如何使用 docker run 创建最基本的容器 $sudo docker run -i -t --name another_container_mum ...