- 浏览: 798638 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (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 25161、DES算法的原理 DES 使用一个 56 位的密钥以及附加 ... -
BeanUtils实现对Java对象的拷贝
2013-08-06 17:26 9092场景描述:两个对象字段一样,怎么简便地赋值呢?假设有两个实体类 ... -
Jackson时间格式及属性忽略
2013-05-17 13:16 15241、Date时间格式 当使用jackson在处理时间时,默认是 ... -
两种将Java对象转成JSON格式的方式
2013-05-16 13:14 2790前言:Java中数据传递到前端的时候很多情况都是JSON格式数 ... -
怎样比较两个集合是否相等
2013-05-16 10:49 6966受这篇文章启发:http://rijin.iteye.com/ ... -
Java字符串时间转Date工具
2013-04-27 00:13 1883注意:java.util.Date是无时区概念的,不用考虑时区 ... -
Java中变量的线程安全问题
2013-04-22 13:38 1839静态变量:线程非安全 ... -
项目中加入声音文件
2013-03-14 18:22 0Java web how to play audio? --- ... -
Timer、TimerTask实现定时业务处理
2013-03-14 20:26 15301、编写任务 package com.bo ... -
resteasy
2013-03-13 18:36 01、访问方式 PUT POST GET 2、下载资源ja ... -
Java中使用C3P0连接池
2013-03-13 00:25 221871、c3p0.properties c3p0.driverCl ... -
Jsoup解析URL或网页内容开发指南
2013-03-04 10:51 2485参考开发示例文档:http://www.open-open.c ... -
Java中线程池使用
2013-02-27 23:31 1001摘自infoQ:http://www.infoq.com/cn ... -
Java中线程池使用
2013-02-27 23:27 21、合理使用线程池的好 ... -
Java中volatile实现线程间变量共享
2013-02-27 23:03 2412volatile变量自身具有下列特性: 可见性。对一个vol ... -
Java中Synchronized的使用注意事项
2013-02-26 14:21 1250转自:http://www.blogjava.net/free ... -
Java实现mysql存储过程调用
2013-02-19 21:41 1299------------------------------- ... -
Java多线程编程#线程等待机制
2013-02-16 15:37 11031、最佳的模型是:生产者-消费者 package com.b ... -
Java多线程编程#线程同步示例
2013-02-16 13:34 14151、线程不同步 在同一个进程中的线程都是独立运行的,线程之间会 ...
相关推荐
使用Gson,你可以轻松地将Java对象序列化为JSON,然后在服务端发送到客户端,或者将接收到的JSON数据反序列化为Java对象。以下是一个简单的示例: ```java import com.google.gson.Gson; public class User { ...
Gson是Google提供的一款开源库,它能够将Java对象转换为对应的JSON字符串,也可以将JSON数据反序列化为Java对象。这对于处理JSON数据非常方便。在本示例中,我们将涵盖以下几个关键知识点: 1. **安装Gson库**:...
Spring Boot提供了对JSON的强大支持,使得开发者可以轻松地将Java对象转换为JSON格式的数据,并将JSON数据反序列化为Java对象。本示例代码着重展示了如何在Spring Boot应用中处理JSON数据。 1. **依赖引入**: 在`...
它的主要功能是将Java对象转换为对应的JSON字符串,也可以将JSON数据反序列化为Java对象。Gson库的强大之处在于其灵活性和自动化处理,它能够自动映射JSON到Java对象,而无需编写大量的转换代码。例如,你可以直接...
在JSON解析中,它可以用于将Java对象转换成JSON格式,或将JSON数据反序列化为Java对象。 3. **Ez Morph** (`ezmorph-1.0.6.jar`): Ez Morph是一个对象到对象的转换库,它提供了动态类型转换的功能。在JSON处理中...
json-lib-2.3.jar是这个库的一个版本,用于支持将Java对象转换成JSON格式和将JSON数据反序列化为Java对象。 标题中提到的"json-lib-2.3.jar"是json-lib库的一个具体实现,主要包含了一系列处理JSON的类和方法。这个...
3. JSON对象和Java对象之间的转换:Json-lib可以将Java对象序列化为JSON字符串,也可以将JSON数据反序列化为Java对象,这对于数据交换非常有用。 4. JSON解析:提供了解析JSON字符串的方法,如`JSONObject ...
fromJson()方法则用于将JSON数据反序列化为Java对象,同样有多种形式供选择: 1. T fromJson(JsonElement json, Class classOfT):将JsonElement转换为指定的Java对象,classOfT是目标对象的Class类型。 2. T from...
Gson通过简单的API使得Java对象能够被序列化为JSON字符串,反之也能将JSON数据反序列化为Java对象。 二、Gson 2.3.1核心功能 1. **对象到JSON字符串的转换**:Gson提供`Gson.toJson()`方法,可以将任何Java对象转换...
在Java开发中,Gson库是Google提供的一款强大的JSON处理工具,它允许我们将Java对象转换为JSON字符串,同时也能够将JSON数据反序列化为Java对象。当我们遇到嵌套的JSON数据时,Gson也能优雅地处理。嵌套的JSON通常...
它提供了将Java对象转换为JSON格式,以及从JSON数据反序列化为Java对象的功能。 5. **ezmorph库**:`ezmorph-1.0.3.jar`是一个Java库,用于对象的动态转型,可能在JSON处理中用于将JSON数据转换为特定的Java类型。 ...
Gson是Google开发的JSON库,它可以直接将Java对象转换为JSON字符串,也可以将JSON数据反序列化为Java对象。Gson的使用简单,API直观,使得在Java应用中处理JSON变得十分便捷。 JSON Jar中的文件可能包括以下内容: ...
无论是将复杂的对象结构序列化为JSON,还是将JSON数据反序列化为Java对象,Gson都提供了简单而强大的工具。掌握Gson的使用对于任何从事Web开发或需要处理JSON数据的Java开发者来说都是必不可少的技能。
Jettison与JAX-RS结合使用时,可以自动将Java对象序列化为JSON,或者将接收到的JSON数据反序列化为Java对象。 三、Jettison的核心功能 1. JSON序列化与反序列化:Jettison能够将Java对象转换成JSON字符串,同时也...
Gson是Google提供的一款强大的JSON库,它可以直接将Java对象转换为JSON字符串,也可以将JSON数据反序列化为Java对象。Gson的优点在于其简洁的API和高效的性能。 #### Gson的基本使用 1. **序列化**:将Java对象...
Gson则是Google提供的一款强大的JSON解析库,能够方便地将Java对象转换为JSON字符串,同时也支持将JSON数据反序列化为Java对象。 GsonFormat插件的使用简化了手动编写Java实体类的过程,尤其在处理大量JSON数据时,...
这个jar包包含了处理JSON的各种工具和类,使得开发者可以轻松地将Java对象转换为JSON字符串,或者将JSON数据反序列化为Java对象。这在进行服务器端数据传输和存储时非常有用,能够简化数据处理流程,提高开发效率。 ...
`json-lib`是一个Java语言编写的JSON库,它提供了一套完整的API,帮助开发者将Java对象转换为JSON字符串,以及将JSON数据反序列化为Java对象。这个`json.jar`包正是`json-lib`库的核心组件,包含所有必要的类和方法...
通过这些jar包,开发者可以轻松地将Java对象序列化为JSON字符串,或者将接收到的JSON数据反序列化为Java对象,从而实现数据的传输和交换。 总结来说,"Json必用jar包"是一个包含了常用Java JSON处理库的集合,旨在...
它可以将任何Java对象转换为对应的JSON字符串,也可以将JSON数据反序列化为Java对象。这对于API调用中数据的序列化和反序列化非常有用。例如,你可以使用`Gson`实例将Java对象转换为JSON字符串,然后作为POST请求的...