之前在用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时遇到的问题的更多相关文章

  1. Json,Gson,FastJson解析笔记

    Json,Gson,FastJson解析笔记 1.将JavaBean转换成Json对象: public static String CreatJsonFromObject(Object key,Obj ...

  2. 使用Google 的 gson方式解析json

    gson支持解析的类型还是比较全面的,包括JavaBean,List<JavaBean>,List<String>,Map等,使用起来也是比较方便,下面根据代码示例给出总结: ...

  3. dom4j解析xml时取消DTD验证

    解决方式整合一下,就分两种: 1.用setFeature() SAXReader reader = new SAXReader();reader.setValidation(false); reade ...

  4. Gson全解析(中)-TypeAdapter的使用

    TypeAdapter介绍 前面的Gson全解析(上)中我们理解并分别运用了JsonSerializer和JsonDeserializer进行JSON和java实体类之间的相互转化.这里利用TypeA ...

  5. 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 ...

  6. C# 解析excel时,字段内有内容,却读取不到的解决方法

    C# 解析excel时,字段内有内容,却读取不到的解决方法:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ...

  7. Gson全解析(下)-Gson性能分析

    前言 在之前的学习中,我们在Gson全解析(上)Gson使用的基础到分别运用了JsonSerializer和JsonDeserializer进行JSON和java实体类之间的相互转化. 在Gson全解 ...

  8. Gson全解析(上)-Gson基础

    前言 最近在研究Retrofit中使用的Gson的时候,发现对Gson的一些深层次的概念和使用比较模糊,所以这里做一个知识点的归纳整理. Gson(又称Google Gson)是Google公司发布的 ...

  9. 在解析XML时要注意解析元素和解析标签属性的区别

    解析元素时: Sting str = ele.elementText("name"); 而解析标签属性时: String key = ele.attributeValue(&quo ...

随机推荐

  1. linux中的chage命令

    在LINUX系统上,密码时效是通过chage命令来管理的. 参数说明:-m 过多少天后可修改密码.为0时代表任何时候都可以更改密码.-M 过多少天后密码过期.-W 用户密码到期前,提前收到警告信息的天 ...

  2. JS产生随机数

    <script>   function GetRandomNum(Min,Max){   var Range = Max - Min;   var Rand = Math.random() ...

  3. java实现调用ORACLE中的游标和包

    今天把oracle中的包和游标学习了下,不废话,网上的的有些代码是错误的,抄来抄去,就自己实践了下,做个记录.直接上图,上代码 通过plsql创建自己的的包,包分为包头和包体. 1.包头如下: CRE ...

  4. string&&char 小技巧

    关于string =,assign()   //赋以新值 swap()   //交换两个字符串的内容 +=,append(),push_back() //在尾部添加字符 insert() //插入字符 ...

  5. Nginx禁止ip访问或IP网段访问方法

    Nginx禁止ip访问可以防止指定IP访问我们的网站,本例子可以实现是防止单IP访问或IP网段访问了,非常的有用我们一起来看看吧. 常用的linux做法 iptables参考规则  代码如下 复制代码 ...

  6. handsontable组件和jqwidgets(jqxdragdrop组件)在一个页面产生调整宽高bug

    修改handsontable.full.js handsontable绑定的"mouseup"事件,默认是window区域太大.引起冲突.

  7. Python html.parser库学习小结

    分类路径:/Datazen/DataMining/Crawler/   前段时间,一朋友让我做个小脚本,抓一下某C2C商城上竞争对手的销售/价格数据,好让他可以实时调整自己的营销策略.自己之前也有过写 ...

  8. php-4种排序

    <?php$arr = array(1, 43, 54, 62, 21, 66, 32, 78, 36, 76, 39); //1. 冒泡排序 //在要排序的一组数中,对当前还未排好的序列,从前 ...

  9. Jpanel和container和jframe的区别

    Jpanel和container和jframe的区别 (2012-05-23 19:15:11) 转载▼ 标签: 杂谈 分类: room 看到上上面的几张图,container容器是位于最高层. 下面 ...

  10. 数据库表映射到MyEclipse的实体对象

    第一步:新增一个项目 第二步:在项目中新增一个包 第三步:将项目变为SSH (1)加Hibernate 选中项目点击右键,选择MyEclipse→project Facets→ 选择Hiberbate ...