- 浏览: 790919 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (151)
- Java-Basic (25)
- Java-NIO (3)
- Java-Mybatis (4)
- Java-Web (15)
- DB-oracle (18)
- DB-mysql (29)
- DB-sqlserver (4)
- DB-postgresql (2)
- DB-SQLite (1)
- DB-H2 (6)
- Tool-Flex (1)
- Tool-Ftp (3)
- Tool-Maven (5)
- Netlink (2)
- Web-CSS (3)
- Web-UI (1)
- Web-JavaScript (8)
- NoSQL (3)
- Mina (2)
- TCPUDP (2)
- SEO (2)
- Network (6)
- DataStructure (1)
- Website-test (1)
- Tool-Excel (1)
- Java-Concurrent (2)
- 前辈指点 (0)
- Eclipse plugins (1)
- DB-NoSQL (1)
最新评论
-
18322696278:
My97DatePicker控件显示时分秒 -
dllhenu:
你好,我让ol加载tiptip,但是tiptip没有在点所在的 ...
OpenLayers下使用Jquery tooltip(Qtip)让要素信息自动显示或隐藏 -
boonya:
你所说的是网页上选择文件路径吧,用ServletFileUpl ...
Apache提供的FTP文件上传下载 -
淡然若水:
我也是用这种方法啊。。。但是FileInputStream i ...
Apache提供的FTP文件上传下载 -
liuweihug:
json序列化反序列化插件-json2.js 介绍和使用 - ...
Json 数据反序列化为Java对象
前言:我们在项目中经常用到的是Json格式的数据,如果是将一个被Jackson转化为JSON数据格式的Java对象进行操作,我们就需要将JSON数据再反序列化为Java对象。
1、实体对象
2、实现JSON数据反序列化为Java对象
3、打印结果
1、实体对象
package com.boonya.gps; import java.io.Serializable; import org.codehaus.jackson.annotate.JsonProperty; public class Point implements Serializable{ private static final long serialVersionUID = -8359918523259373062L; private double lat; private double lng; public double getLat() { return lat; } public Point(@JsonProperty("lat") double lat,@JsonProperty("lng") double lng) { this.lat = lat; this.lng = lng; } public void setLat(double lat) { this.lat = lat; } public double getLng() { return lng; } public void setLng(double lng) { this.lng = lng; } @Override public String toString() { return "Point(lat,lng)="+" {lat:"+lat+","+"lng:"+lng+"}"; } }
2、实现JSON数据反序列化为Java对象
package com.boonya.gps; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.TypeReference; /** * JSON数据反序列化为Java对象或对象集合 * @author BOONYACHENGDU@GMAIL.COM * @date 2013-8-28 */ public class JSONSeriaToObject { /** * 对象转JSON * @param obj * @return */ public String getJsonFromObject(Object obj){ ObjectMapper om = new ObjectMapper(); try { return om.writeValueAsString(obj); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ""; } /** * JSON发序列化为Java对象 * @param jsonStr * @return */ public Point getPointByJsonString(String jsonStr){ Point point =null; ObjectMapper om = new ObjectMapper(); try { JsonNode node=om.readTree(jsonStr); point= (Point) om.readValue(node.toString(),Point.class); } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println("<:success single point:>"+point.toString()); return point; } /** * 拼接Json数据的字符串转化为标准Json格式字符串 * @param str * @return */ public String getJsonNodeStringByString(String str){ ObjectMapper om = new ObjectMapper(); try { JsonNode node=om.readTree(str); return node.toString(); } catch (JsonProcessingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ""; } /** * JSON发序列化为Java对象集合 * @param jsonStr * @return */ @SuppressWarnings("unchecked") public List<Point> getPointsByJsonString(String jsonStr){ List<Point> points = new ArrayList<Point>(); ObjectMapper om = new ObjectMapper(); try { JsonNode node=om.readTree(jsonStr); points= (List<Point>) om.readValue(node.toString(), new TypeReference<List<Point>>() {}); } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } for (int i = 0; i < points.size(); i++) { System.out.println("<:success index "+i+":>"+points.get(i).toString()); } return points; } /** * JSON数据反序列化为Java对象的测试入口 * @param args * @throws JsonGenerationException * @throws JsonMappingException * @throws IOException */ public static void main(String[] args) throws JsonGenerationException,JsonMappingException, IOException { JSONSeriaToObject jsto=new JSONSeriaToObject(); //原始数据格式 System.out.println("----------------------------------Jackson JSON(list<T>) to Java Object-----------------------------"); List<Point> points = new ArrayList<Point>(); points.add(new Point(34.2332,104.46664)); String json=jsto.getJsonFromObject(points); System.out.println(json); //JSON序列化Java对象 jsto.getPointsByJsonString(json); System.out.println("----------------------------------Jackson JSON(T) to Java Object-----------------------------"); Point point=new Point(34.5332,104.76664); String json2=jsto.getJsonFromObject(point); System.out.println(json2); //JSON序列化Java对象 jsto.getPointByJsonString(json2); //JSON序列化为Java对象 System.out.println("----------------------------------Ping string JSON to Java Object-----------------------------"); String latlngs =new String("[{\"lat\":34.232013,\"lng\":103.466002},{\"lat\":34.531939,\"lng\":103.665816}]"); //经测试以下数据若调用getJsonFromObject是不行的会产生异常 String json3=jsto.getJsonNodeStringByString(latlngs); System.out.println(json3); //JSON序列化Java对象 jsto.getPointsByJsonString(json3); } }
3、打印结果
----------------------------------Jackson JSON(list<T>) to Java Object----------------------------- [{"lat":34.2332,"lng":104.46664}] <:success index 0:>Point(lat,lng)= {lat:34.2332,lng:104.46664} ----------------------------------Jackson JSON(T) to Java Object----------------------------- {"lat":34.5332,"lng":104.76664} <:success single point:>Point(lat,lng)= {lat:34.5332,lng:104.76664} ----------------------------------Ping string JSON to Java Object----------------------------- [{"lat":34.232013,"lng":103.466002},{"lat":34.531939,"lng":103.665816}] <:success index 0:>Point(lat,lng)= {lat:34.232013,lng:103.466002} <:success index 1:>Point(lat,lng)= {lat:34.531939,lng:103.665816}
评论
1 楼
liuweihug
2014-08-01
json序列化反序列化插件-json2.js 介绍和使用 - 前端编程 - IT工作生活这点事。Just Such So!
http://www.suchso.com/UIweb/json2-js-stringify-parse-serializable-deserialize.html
http://www.suchso.com/UIweb/json2-js-stringify-parse-serializable-deserialize.html
发表评论
-
cache4jJava对象缓存使用示例
2013-10-28 18:16 01、下载cache4j http://source ... -
Java DES加密工具
2013-10-16 11:19 24481、DES算法的原理 DES 使用一个 56 位的密钥以及附加 ... -
BeanUtils实现对Java对象的拷贝
2013-08-06 17:26 9053场景描述:两个对象字段一样,怎么简便地赋值呢?假设有两个实体类 ... -
Jackson时间格式及属性忽略
2013-05-17 13:16 14821、Date时间格式 当使用jackson在处理时间时,默认是 ... -
两种将Java对象转成JSON格式的方式
2013-05-16 13:14 2749前言:Java中数据传递到前端的时候很多情况都是JSON格式数 ... -
怎样比较两个集合是否相等
2013-05-16 10:49 6904受这篇文章启发:http://rijin.iteye.com/ ... -
Java字符串时间转Date工具
2013-04-27 00:13 1839注意:java.util.Date是无时区概念的,不用考虑时区 ... -
Java中变量的线程安全问题
2013-04-22 13:38 1794静态变量:线程非安全 ... -
项目中加入声音文件
2013-03-14 18:22 0Java web how to play audio? --- ... -
Timer、TimerTask实现定时业务处理
2013-03-14 20:26 14771、编写任务 package com.bo ... -
resteasy
2013-03-13 18:36 01、访问方式 PUT POST GET 2、下载资源ja ... -
Java中使用C3P0连接池
2013-03-13 00:25 221221、c3p0.properties c3p0.driverCl ... -
Jsoup解析URL或网页内容开发指南
2013-03-04 10:51 2436参考开发示例文档:http://www.open-open.c ... -
Java中线程池使用
2013-02-27 23:31 962摘自infoQ:http://www.infoq.com/cn ... -
Java中线程池使用
2013-02-27 23:27 21、合理使用线程池的好 ... -
Java中volatile实现线程间变量共享
2013-02-27 23:03 2366volatile变量自身具有下列特性: 可见性。对一个vol ... -
Java中Synchronized的使用注意事项
2013-02-26 14:21 1208转自:http://www.blogjava.net/free ... -
Java实现mysql存储过程调用
2013-02-19 21:41 1261------------------------------- ... -
Java多线程编程#线程等待机制
2013-02-16 15:37 10621、最佳的模型是:生产者-消费者 package com.b ... -
Java多线程编程#线程同步示例
2013-02-16 13:34 13751、线程不同步 在同一个进程中的线程都是独立运行的,线程之间会 ...
相关推荐
Jsonex JSONCoder是一个轻量级的通用对象序列化/反序列化库,类似于Jackson,GSON或FastJson。 多年来,该库已在各种eBay项目中广泛使用。 它不能替代其他流行的库。 但是,它解决了一些其他替代产品无法提供或无法...
将每本书的JSON数据反序列化为Book对象 构建一个Book对象数组,并为这些书创建一个RecyclerView.Adapter 定义onCreateViewHolder来定义如何为每个书行增加布局并在onBindViewHolder绑定每本书的数据。 将书籍的...
将每本书的 JSON 数据反序列化为Book对象 构建一个Book对象数组并为这些书籍创建一个ArrayAdapter 定义getView来定义如何为每一本书行扩展布局并显示每本书的数据。 将书籍的适配器附加到 ListView 以在屏幕上显示...
将每本书的JSON数据反序列化为Book对象 构建一个Book对象数组,并为这些书创建一个ArrayAdapter 将书籍的适配器连接到ListView以在屏幕上显示数据 使用的技术 Java 火花 JUnit的 速度模板引擎 先决条件 基本的
将每本书的 JSON 数据反序列化为Book对象 构建一个Book对象数组并为这些书籍创建一个ArrayAdapter 定义getView来定义如何为每一本书行扩展布局并显示每本书的数据。 将书籍的适配器附加到 ListView 以在屏幕上显示...
看书 使用GoodReads API检索书籍及其各自作者的详细信息/数据的Android应用...将每本书的JSON数据反序列化为Book对象 构建一个Book对象数组,并为这些书创建一个ArrayAdapter 将书籍的适配器连接到ListView以在屏幕上
将每本书的JSON数据反序列化为Book对象 构建Book对象数组,并通知适配器显示新数据。 定义一个视图支架,以便适配器可以呈现每个书本模型。 为此,此应用程序包含四个不同的组件: BookClient负责执行API请求和...
将每本书的JSON数据反序列化为Book对象 构建Book对象数组,并通知适配器显示新数据。 定义一个视图支架,以便适配器可以呈现每个书本模型。 为此,此应用程序包含四个不同的组件: BookClient负责执行API请求和...
将每本书的JSON数据反序列化为Book对象 构建Book对象数组,并通知适配器显示新数据。 定义一个视图支架,以便适配器可以呈现每个书本模型。 为此,此应用程序包含四个不同的组件: BookClient负责执行API请求和...
将每本书的JSON数据反序列化为Book对象 构建一个Book对象数组,并通知适配器显示新数据。 定义一个视图支架,以便适配器可以呈现每个书本模型。 为此,此应用程序包含四个不同的组件: BookClient负责执行API请求...
难道是这些JSON库都不支持反序列化为类对象?我马上打消了这个念头,Python这样强大的脚本语言,不可能没有完善的JSON库。 于是我就研究了一下原生的 json ,以及第三方的 demjson 和 simplejson 。 一、
Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发。 0x01 漏洞描述 Xstream上次对CVE-2020-26217处理并不彻底,虽然通过黑名单...
来自后端的JSON响应将反序列化为MyObject类的“ response”实例。 要执行POST调用: MyObject myPostData = new MyObject(); myPostData.setMyProperty(“ myValue”); JSONClient客户端=新的JSONClicent...
杰克逊Mendix JSON序列化器/反序列化器MxJson是一个模块,提供了开箱即用的功能,可将Mendix对象序列化为JSON,并将JSON反序列化为Mendix对象。 MxJson是从流行的Mendix RestServices( )中毫不客气地提取出来的,...
Gson:JSON反序列化器 ButterKnife:用于UI组件的DI解决方案 包装结构 活动:所有活动都在这里 bean:请求和响应JSON模型。 请求:用于序列化为JSON并发送到服务器端 响应:它们是从服务器返回的JSON数据中反序列化...
开篇前言 从2018年2月的第一篇文章开始到现在已经发布了946篇原创文章,时隔2年零...Fastjson是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串
组件需要驻留在单个包中:由组件发现和 json 反序列化强加。 使用稍微修改过的 artemis,允许在运行时切换系统。 该演示使用来减少样板废话。 有关 Eclipse/Netbeans 安装,请参阅他们的站点。 (在稍后阶段,可能...