package com.ljl.org.domain; import java.io.File; import java.util.HashMap; import java.util.Map; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.JsonToken; import org.codehaus.jackson.map.ObjectMapper; import com.google.gson.Gson; import com.ljl.org.entity.Info; import com.ljl.org.entity.User; /** *@Author:liangjilong *@Date:2013-8-13 *@Email:jilongliang@sina.com *@Version:Version1.0 *@CopyRight:liangjilong *@Description:http://wiki.fasterxml.com/JacksonInFiveMinutes#Full_Data_Binding_.28POJO.29_Example * *===================================== * ===================================== * ☆★★建议解析json的有: * 1)GSON (gson-2.2.4.jar) * 2)json-lib-2.2.3-jdk15.jar-- * ☆不建议使用的: * JackSON比较扯淡(毛线) * 需要的jar * http://download.csdn.net/detail/jilongliang/5789041 * jackson-all-1.6.2.jar * jackson-core-asl-1.6.2.jar * jackson-mapper-asl-1.6.2.jar * jakarta-oro.jar * ===================================== * ===================================== */ public class Jackson1 { private static ObjectMapper mapper = new ObjectMapper(); public static void main(String[] args) throws Exception { jackSon1(); jackSon2(); } /** * 简单的JackSon测试,对比一下,不知道谁抄谁的!Gson和Json-lib-2.2.3-jdk15也有很多相似的 * 使用者两个技术的人都知道、、、、 * =================================================== * Gson创建一个JsonParser * JsonParser parser = new JsonParser(); * JsonElement jsonEl = parser.parse(json); * =================================================== * JackSon 创建一个JsonParser * JsonFactory f = new JsonFactory();//实例JSON工程对象 * JsonParser jp = f.createJsonParser(json); * =================================================== */ public static void jackSon1()throws Exception{ String json = "[{\"userName\": \"liangjilong\",\"address\":\"广东阳春\"},{\"userName\": \"liangjilong\",\"address\": \"广东阳春\"}]"; JsonFactory f = new JsonFactory();//实例JSON工程对象 JsonParser jp = f.createJsonParser(json); jp.nextToken();//下一个JsonToken while (jp.nextToken() == JsonToken.START_OBJECT) { User u = mapper.readValue(jp, User.class);//对象化 System.out.println(u.getUserName()+"\t"+u.getAddress()); } } /** * @throws Exception */ public static void jackSon2()throws Exception{ /** * 组装address对象的数据 */ Map<String, String> address = new HashMap <String, String>(); address.put("province", "广东省"); address.put("city", "广州市"); address.put("district", "天河区"); address.put("street", "棠东"); /** * 组装users对象的数据 */ Map<String, String> users = new HashMap <String, String>(); users.put("userName", "liangjilong"); users.put("age", "25"); users.put("tel", "12396878"); users.put("email", "jilongliang@sina.com"); Map<Object, Object> listsObj = new HashMap <Object, Object>(); listsObj.put("address",address);//address节点 listsObj.put("user",users);//users节点 Object obj=listsObj;//转换成对象 Map<Object, Object> info = new HashMap <Object, Object>(); info.put("info", obj);//json的根节点 //System.out.println(info); /** * 写 */ String path="D:/test/json1.txt"; mapper.writeValue(new File(path), info);//把数据写入本地文件,JackSon会以json格式写入进去的 /** * 读 */ String jsons=info.toString().replace("=", ":"); //用Gson处理/初次使用JackSon找不到处理json数据,由于之前使用Gson就熟悉,就借用一下处理,感觉有点毛线。O(∩_∩)O哈哈~无语. //String newJson=new Gson().toJson(info); String newJson=mapper.writeValueAsString(info); int start=newJson.indexOf(":")+1; int end=newJson.lastIndexOf("}"); jsons="["+newJson.substring(start, end)+"]";//组装JackSon支持的格式. JsonFactory f = new JsonFactory();//实例JSON工程对象 JsonParser jp = f.createJsonParser(jsons); jp.nextToken();//下一个JsonToken while (jp.nextToken() == JsonToken.START_OBJECT) { Info inf = mapper.readValue(jp, Info.class);//对象化 System.out.println(inf.getAddress().getDistrict());//获取Address对象的值 System.out.println(inf.getUser().getUserName());//获取User的值 } } }
package com.ljl.org.entity; /** *@Author:liangjilong *@Date:2013-8-13 *@Email:jilongliang@sina.com *@Version:Version1.0 *@CopyRight:liangjilong *@Description: */ public class Info { private Address address; private User user; public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
package com.ljl.org.entity; /** *@Author:liangjilong *@Date:2013-8-13 *@Email:jilongliang@sina.com *@Version:Version1.0 *@CopyRight:liangjilong *@Description: */ public class Address { private String province; private String city; private String district; private String street; public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getDistrict() { return district; } public void setDistrict(String district) { this.district = district; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } }
package com.ljl.org.entity; /** *@Author:liangjilong *@Date:2013-8-13 *@Email:jilongliang@sina.com *@Version:Version1.0 *@CopyRight:liangjilong *@Description: */ public class User { private int Id; private String userName; private String tel; private String address; private String age; private String email; public int getId() { return Id; } public void setId(int id) { Id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
相关推荐
以上三种库各有优缺点,Gson和Jackson性能较好,org.json库轻量级但功能相对简单。在实际开发中,应根据项目需求和性能要求选择合适的库。同时,理解这些库的工作原理和使用方式对于提升编程效率至关重要。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁和易于阅读的特性,被广泛应用于前后端交互。当需要将Java中的Map对象转换为JSON字符串时,我们就需要用到特定的库来实现这一功能。本文将...
使用Jackson库将Map转换为JSON和将JSON解析为Map的步骤如下: 1. **Map转JSON**: ```java import com.fasterxml.jackson.databind.ObjectMapper; ObjectMapper mapper = new ObjectMapper(); Map, Object> ...
Map和Json都是广泛使用的数据格式,但它们有着不同的应用场景。Map是许多编程语言(如Java、Python等)中的一个内置数据类型,用于存储键值对,而Json则是一种轻量级的数据交换格式,常用于Web服务的数据传输。本...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但不是JavaScript的一部分。JSON在Java中的解析通常涉及将JSON字符串...
在Java编程语言中,处理JSON(JavaScript Object Notation)数据是一项常见的任务,因为JSON作为一种轻量级的数据...理解这些库的使用方式对于任何Java开发者来说都是至关重要的,特别是在处理Web服务和数据交换时。
而在Java编程语言中,处理JSON数据通常涉及到将JSON字符串或对象转换为Java对象(如`Map`、`List`、自定义Java Bean类等),以及反之亦然的过程。 #### JSON与Java数据类型的对应关系 1. **JSON Object <-> Java ...
"对象转换成JSON和Map"是一个核心话题,特别是在Java编程语言中,因为JSON(JavaScript Object Notation)是网络通信中广泛使用的轻量级数据交换格式,而Map则是一种通用的数据结构,用于存储键值对。下面我们将深入...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但被广泛应用于各种编程语言中,包括Java。在本主题中,我们将深入探讨...
例如,一个简单的示例是,从服务器获取JSON响应后,我们可以用JSONUtil将字符串转换为Map,然后提取所需数据: ```java String jsonString = "{'name': 'John', 'age': 30, 'city': 'New York'}"; Map, Object> map...
在Eclipse中处理JSON数据,开发者通常会使用到一些库来方便地解析和生成JSON对象。这些库包括Jackson、Gson、org.json和我们这里提到的json-lib。json-lib是一个Java库,它提供了一种简单的方式来处理JSON数据,...
2. `jackson-core.jar`: Jackson的基础库,包含JSON解析和生成的低级别API。 3. `jackson-annotations.jar`: 提供了Jackson注解,如`@JsonProperty`,`@JsonInclude`等,用于自定义序列化和反序列化的行为。 4. `...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前端与后端之间的数据交互,因为它易于人阅读和编写,同时也易于机器解析和生成。`json-lib`是一个Java库,它提供了一种在Java应用程序中处理...
需要注意的是,随着技术的发展,还有其他一些更现代的JSON库如Jackson、Gson等出现,它们可能提供了更多特性和更好的性能,但在一些老项目或者对兼容性有特殊要求的场景下,`net.sf.json`仍然是一个可靠的选择。
Map和JavaBean是Java中的两种数据结构,它们与JSON有着紧密的关联,因为它们都能用来存储和表示数据。本篇将详细介绍如何在Java中进行JSON到Map、JavaBean以及反之的转换,并探讨相关工具的使用。 1. JSON到Map的...
Java解析JSON源码是Java开发中的重要一环,因为JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛应用于服务器与客户端之间的数据传输。本文将深入探讨如何在Java中解析JSON源码,以及如何利用...
Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效且功能丰富的工具,...无论是简单的Map、List还是复杂的Java对象,Jackson都能够胜任,极大地简化了Java开发者处理JSON数据的工作。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本例子将详细介绍如何在Servlet中获取并处理JSON数据。 首先,我们需要引入处理JSON的库,最常用的...
本篇将详细介绍如何使用两个Java工具类,`JackSonUtil` 和 `GsonUtil`,将Map和List对象转换为JSON字符串。 首先,`JackSonUtil` 是基于Jackson库的一个工具类,Jackson是Java中最流行的JSON处理库之一,提供了高效...