Java Hour 42 fastjson
2013-11-17 22:23
281 查看
fastjson 神一样的存在,然后由于缺乏文档,很多功能完全不知道该怎么用。
不过这个可以用@JSONField(name = "weatherinfo") 来解决,还算勉强凑合。
我们得到的json 外面套了一层weatherinfo, 我完全找不到文档怎么去解析这种类型的json.
我只能傻逼一样的创建一个weatherinfoContainer 类。
不知道各位国际友人怎么解决这个问题的?
进过查看API, 换了一种方式改进了。不知道有没有更加快捷的方式。
42.1 字段的大小写问题
刚开始没想到会因为字段的大小写问题而导致反序列化json 失败。@Override public String execute() throws ClientProtocolException, IOException { String result = ""; HttpClient httpclient = new DefaultHttpClient(); HttpGet httpgets = new HttpGet("http://m.weather.com.cn/data/101210101.html"); HttpResponse response = httpclient.execute(httpgets); HttpEntity entity = response.getEntity(); if (entity != null) { InputStream instreams = entity.getContent(); result = convertStreamToString(instreams); httpgets.abort(); } WeatherInfoContainer wi = JSON.parseObject(result, WeatherInfoContainer.class); setWeather(wi.getWeatherinfo()); return SUCCESS; }
不过这个可以用@JSONField(name = "weatherinfo") 来解决,还算勉强凑合。
42.2 json 的格式问题
{"weatherinfo":{"city":"杭州"}}我们得到的json 外面套了一层weatherinfo, 我完全找不到文档怎么去解析这种类型的json.
我只能傻逼一样的创建一个weatherinfoContainer 类。
不知道各位国际友人怎么解决这个问题的?
@Override public String execute() throws ClientProtocolException, IOException { String result = ""; HttpClient httpclient = new DefaultHttpClient(); HttpGet httpgets = new HttpGet("http://m.weather.com.cn/data/101210101.html"); HttpResponse response = httpclient.execute(httpgets); HttpEntity entity = response.getEntity(); if (entity != null) { InputStream instreams = entity.getContent(); result = convertStreamToString(instreams); httpgets.abort(); } WeatherInfoContainer weatherInfoContainer = JSON.parseObject(result, WeatherInfoContainer.class); setWeather(weatherInfoContainer.getWeatherinfo()); return SUCCESS; }
setWeather(JSON.parseObject(result).getObject("weatherinfo", Weatherinfo.class));
进过查看API, 换了一种方式改进了。不知道有没有更加快捷的方式。
42.3 Java String 的转义问题
有时候需要输入的字符串中有很多的引号,这个时候C# 可以用@ 符号来实现转义,Java 里面不知道怎么搞起。小结
fastjson 据说很快,但是由于缺乏说明文档,我只能说呵呵了,下次有需求的时候试用其他人推荐的其他版本的json 工具。相关文章推荐
- Java Hour 32 Weather ( 5 ) struts2 – Action class
- [编写高质量代码:改善java程序的151个建议]建议42,如何让一个工具类不可实例化
- Java基础知识强化42:StringBuffer类之StringBuffer的截取功能
- Fastjson是一个Java语言编写的高性能功能完善的JSON库。
- Java学习笔记42:线程的几个方法和概念
- Java Hour 65 [译] Java 6.0 说明
- 【剑指offer-Java版】42翻转单词顺序VS左旋转字符串
- Java Hour 67 Java Collection API
- JAVA | 42 - IO | 文件操作
- fastJson在java后台转换json格式数据探究(一)
- [编写高质量代码:改善java程序的151个建议]建议42,如何让一个工具类不可实例化
- 【JAVA】42、实例讲解——类设计分析
- 很好用的JAVA JSON工具:FastJSON
- 【Java学习笔记】42:改进JFrame可视化棋盘覆盖
- Java记录 -42- Java Collection
- Java Hour 40 Maven ( 2 )
- Java Hour 46 SLF4J
- 剑指Offer 42题 翻转单词顺序 Java版
- fastjson:实现对java.nio.ByteBuffer数据类型的支持
- [leetcode-42]Trapping Rain Water(java)