- 浏览: 599813 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
将字符串转化成实体集合
Jackson是一个采用Java开发的高性能JSON处理器(JSON解析器+JSON生成器)。它比其它任何Java JSON Parser和Data Binder都快。除了基本的JSON读写功能之外,它提供完全基于节点的Tree Model和完整的OJM (Object/Json Mapper)数据绑定功能,可以绑定任意Java Bean、Collection、Map或Enum。
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将Json、xml转换成Java对象。
前面有介绍过json-lib这个框架,在线博文:http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html
相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且Jackson社区相对比较活跃,更新速度也比较快。
一、准备工作
1、 下载依赖库jar包
Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar
然后在工程中导入这个jar包即可开始工作
官方示例:http://wiki.fasterxml.com/JacksonInFiveMinutes
因为下面的程序是用junit测试用例运行的,所以还得添加junit的jar包。版本是junit-4.2.8
如果你需要转换xml,那么还需要stax2-api.jar
2、 测试类基本代码如下
自己写的例子:
3、 所需要的JavaEntity
二、Java对象转换成JSON
1、 JavaBean(Entity/Model)转换成JSON
2、 将Map集合转换成Json字符串
3、 将List集合转换成json
4、下面来看看jackson提供的一些类型,用这些类型完成json转换;如果你使用这些类型转换JSON的话,那么你即使没有JavaBean(Entity)也可以完成复杂的Java类型的JSON转换。下面用到这些类型构建一个复杂的Java对象,并完成JSON转换。
三、JSON转换成Java对象
1、 将json字符串转换成JavaBean对象
2、 将json字符串转换成List<Map>集合
3、 Json字符串转换成Array数组,由于上面的泛型转换不能识别到集合中的对象类型。所有这里用对象数组,可以解决这个问题。只不过它不再是集合,而是一个数组。当然这个不重要,你可以用Arrays.asList将其转换成List即可。
4、 Json字符串转换成Map集合
四、Jackson对XML的支持
Jackson也可以完成java对象到xml的转换,转换后的结果要比json-lib更直观,不过它依赖于stax2-api.jar这个jar包。
所用的jar包 看附件。
转载请注明出处 本文出自:[url]http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html [/url]
List<SQZCOrderDtail> list= om.readValue(node.findPath("result"),new TypeReference<List<SQZCOrderDtail>>(){});//把json转换为list<实体>
Jackson是一个采用Java开发的高性能JSON处理器(JSON解析器+JSON生成器)。它比其它任何Java JSON Parser和Data Binder都快。除了基本的JSON读写功能之外,它提供完全基于节点的Tree Model和完整的OJM (Object/Json Mapper)数据绑定功能,可以绑定任意Java Bean、Collection、Map或Enum。
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将Json、xml转换成Java对象。
前面有介绍过json-lib这个框架,在线博文:http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html
相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且Jackson社区相对比较活跃,更新速度也比较快。
一、准备工作
1、 下载依赖库jar包
Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar
然后在工程中导入这个jar包即可开始工作
官方示例:http://wiki.fasterxml.com/JacksonInFiveMinutes
因为下面的程序是用junit测试用例运行的,所以还得添加junit的jar包。版本是junit-4.2.8
如果你需要转换xml,那么还需要stax2-api.jar
2、 测试类基本代码如下
自己写的例子:
import java.io.IOException; import java.io.StringWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import net.sf.json.JSONArray; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.ObjectMapper; public class JacksonTest { @SuppressWarnings("all") private JsonGenerator jsonGenerator = null; private ObjectMapper objectMapper = null; private StringWriter strw = null ; //初始化一些基本信息 public JacksonTest() { objectMapper = new ObjectMapper(); strw = new StringWriter() ; try { jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(strw); //设置日期格式 SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); objectMapper.setDateFormat(fmt); objectMapper.enableDefaultTyping(); } catch (IOException e) { e.printStackTrace(); } } private String formateObject(Object value) { String json = ""; try { json = objectMapper.writeValueAsString(value); } catch (JsonProcessingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return json; } private String formateListObject(Object value) { try { objectMapper.writeValue(strw, value); } catch (JsonProcessingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return strw.toString(); } @SuppressWarnings("all") private Object parseJsonString(String jsonValue,Class clazz) { Object result = null ; try { result = objectMapper.readValue(jsonValue,clazz); } catch (JsonProcessingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; } @SuppressWarnings("all") public static void main(String[] args) throws Exception{ JacksonTest jacksonTest = new JacksonTest(); Person person = new Person("lwx",23,"1234",new Date()); Person person2 = new Person("lwx",24,"1234",new Date()); List<Person> pList = new ArrayList<Person>() ; pList.add(person); pList.add(person2); System.out.println(jacksonTest.formateObject(person)); System.out.println(jacksonTest. formateListObject(pList)); JSONArray array1 = JSONArray.fromObject(jacksonTest. formateListObject(pListStr)); //Json 转 List for(int i = 0; i < array1.size(); i++) { JSONArray array2 = JSONArray.fromObject(array1.getString(i)); System.out.println(jacksonTest.parseJsonString(array2.getString(1), Person.class)); } } }; class Person{ private String name ; private int age ; private String id ; private Date date ; //无参构造器是必须有的 json转对象时无参构造函数必须要有 public Person() { } public Person(String name, int age, String id, Date date) { super(); this.name = name; this.age = age; this.id = id; this.date = date; } public String getId() { return id; } public void setId(String id) { this.id = id; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "姓名:"+this.name+" 年龄:"+this.age+" 日期:"+this.date; } };
package com.hoo.test; import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; import org.codehaus.jackson.JsonEncoding; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.node.JsonNodeFactory; import org.codehaus.jackson.xml.XmlMapper; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.hoo.entity.AccountBean; /** * <b>function:</b>Jackson 将java对象转换成JSON字符串,也可以将JSON字符串转换成java对象 * jar-lib-version: jackson-all-1.6.2 * jettison-1.0.1 * @author hoojo * @createDate 2010-11-23 下午04:54:53 * @file JacksonTest.java * @package com.hoo.test * @project Spring3 * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ @SuppressWarnings("unchecked") public class JacksonTest { private JsonGenerator jsonGenerator = null; private ObjectMapper objectMapper = null; private AccountBean bean = null; @Before public void init() { bean = new AccountBean(); bean.setAddress("china-Guangzhou"); bean.setEmail("hoojo_@126.com"); bean.setId(1); bean.setName("hoojo"); objectMapper = new ObjectMapper(); try { jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8); } catch (IOException e) { e.printStackTrace(); } } @After public void destory() { try { if (jsonGenerator != null) { jsonGenerator.flush(); } if (!jsonGenerator.isClosed()) { jsonGenerator.close(); } jsonGenerator = null; objectMapper = null; bean = null; System.gc(); } catch (IOException e) { e.printStackTrace(); } } }
3、 所需要的JavaEntity
package com.hoo.entity; public class AccountBean { private int id; private String name; private String email; private String address; private Birthday birthday; //getter、setter @Override public String toString() { return this.name + "#" + this.id + "#" + this.address + "#" + this.birthday + "#" + this.email; } } Birthday package com.hoo.entity; public class Birthday { private String birthday; public Birthday(String birthday) { super(); this.birthday = birthday; } //getter、setter public Birthday() {} @Override public String toString() { return this.birthday; } }
二、Java对象转换成JSON
1、 JavaBean(Entity/Model)转换成JSON
/** * <b>function:</b>将java对象转换成json字符串 * @author hoojo * @createDate 2010-11-23 下午06:01:10 */ @Test public void writeEntityJSON() { try { System.out.println("jsonGenerator"); //writeObject可以转换java对象,eg:JavaBean/Map/List/Array等 jsonGenerator.writeObject(bean); System.out.println(); System.out.println("ObjectMapper"); //writeValue具有和writeObject相同的功能 objectMapper.writeValue(System.out, bean); //StringWriter strw = new StringWriter(); //jsonGenerator=objectMapper.getJsonFactory().createJsonGenerator(strw); //objectMapper.writeValue(strw, bean); 这样就不json内容写到StringWriter中 //String jsonStr = strw.toString(); } catch (IOException e) { e.printStackTrace(); } } /*运行后结果如下: jsonGenerator {"address":"china-Guangzhou","name":"hoojo","id":1,"birthday":null,"email":"hoojo_@126.com"} ObjectMapper {"address":"china-Guangzhou","name":"hoojo","id":1,"birthday":null,"email":"hoojo_@126.com"} 上面分别利用JsonGenerator的writeObject方法和ObjectMapper的writeValue方法完成对Java对象的转换,二者传递的参数及构造的方式不同;JsonGenerator的创建依赖于ObjectMapper对象。也就是说如果你要使用JsonGenerator来转换JSON,那么你必须创建一个ObjectMapper。但是你用ObjectMapper来转换JSON,则不需要JSONGenerator。 objectMapper的writeValue方法可以将一个Java对象转换成JSON。这个方法的参数一,需要提供一个输出流,转换后可以通过这个流来输出转换后的内容。或是提供一个File,将转换后的内容写入到File中。当然,这个参数也可以接收一个JSONGenerator,然后通过JSONGenerator来输出转换后的信息。第二个参数是将要被转换的Java对象。如果用三个参数的方法,那么是一个Config。这个config可以提供一些转换时的规则,过指定的Java对象的某些属性进行过滤或转换等。 */
2、 将Map集合转换成Json字符串
/** * <b>function:</b>将map转换成json字符串 * @author hoojo * @createDate 2010-11-23 下午06:05:26 */ @Test public void writeMapJSON() { try { Map<String, Object> map = new HashMap<String, Object>(); map.put("name", bean.getName()); map.put("account", bean); bean = new AccountBean(); bean.setAddress("china-Beijin"); bean.setEmail("hoojo@qq.com"); map.put("account2", bean); System.out.println("jsonGenerator"); jsonGenerator.writeObject(map); System.out.println(""); System.out.println("objectMapper"); objectMapper.writeValue(System.out, map); } catch (IOException e) { e.printStackTrace(); } } 转换后结果如下: jsonGenerator {"account2":{"address":"china-Beijin","name":null,"id":0,"birthday":null,"email":"hoojo@qq.com"},"name":"hoojo", "account":{"address":"china-Guangzhou","name":"hoojo","id":1,"birthday":null,"email":"hoojo_@126.com"}} objectMapper {"account2":{"address":"china-Beijin","name":null,"id":0,"birthday":null,"email":"hoojo@qq.com"},"name":"hoojo", "account":{"address":"china-Guangzhou","name":"hoojo","id":1,"birthday":null,"email":"hoojo_@126.com"}}
3、 将List集合转换成json
/** * <b>function:</b>将list集合转换成json字符串 * @author hoojo * @createDate 2010-11-23 下午06:05:59 */ @Test public void writeListJSON() { try { List<AccountBean> list = new ArrayList<AccountBean>(); list.add(bean); bean = new AccountBean(); bean.setId(2); bean.setAddress("address2"); bean.setEmail("email2"); bean.setName("haha2"); list.add(bean); System.out.println("jsonGenerator"); //list转换成JSON字符串 jsonGenerator.writeObject(list); System.out.println(); System.out.println("ObjectMapper"); //用objectMapper直接返回list转换成的JSON字符串 System.out.println("1###" + objectMapper.writeValueAsString(list)); System.out.print("2###"); //objectMapper list转换成JSON字符串 objectMapper.writeValue(System.out, list); } catch (IOException e) { e.printStackTrace(); } } 结果如下: jsonGenerator [{"address":"china-Guangzhou","name":"hoojo","id":1,"birthday":null,"email":"hoojo_@126.com"}, {"address":"address2","name":"haha2","id":2,"birthday":null,"email":"email2"}] ObjectMapper 1###[{"address":"china-Guangzhou","name":"hoojo","id":1,"birthday":null,"email":"hoojo_@126.com"}, {"address":"address2","name":"haha2","id":2,"birthday":null,"email":"email2"}] 2###[{"address":"china-Guangzhou","name":"hoojo","id":1,"birthday":null,"email":"hoojo_@126.com"}, {"address":"address2","name":"haha2","id":2,"birthday":null,"email":"email2"}] 外面就是多了个[]中括号;同样Array也可以转换,转换的JSON和上面的结果是一样的,这里就不再转换了。~.~
4、下面来看看jackson提供的一些类型,用这些类型完成json转换;如果你使用这些类型转换JSON的话,那么你即使没有JavaBean(Entity)也可以完成复杂的Java类型的JSON转换。下面用到这些类型构建一个复杂的Java对象,并完成JSON转换。
@Test public void writeOthersJSON() { try { String[] arr = { "a", "b", "c" }; System.out.println("jsonGenerator"); String str = "hello world jackson!"; //byte jsonGenerator.writeBinary(str.getBytes()); //boolean jsonGenerator.writeBoolean(true); //null jsonGenerator.writeNull(); //float jsonGenerator.writeNumber(2.2f); //char jsonGenerator.writeRaw("c"); //String jsonGenerator.writeRaw(str, 5, 10); //String jsonGenerator.writeRawValue(str, 5, 5); //String jsonGenerator.writeString(str); jsonGenerator.writeTree(JsonNodeFactory.instance.POJONode(str)); System.out.println(); //Object jsonGenerator.writeStartObject();//{ jsonGenerator.writeObjectFieldStart("user");//user:{ jsonGenerator.writeStringField("name", "jackson");//name:jackson jsonGenerator.writeBooleanField("sex", true);//sex:true jsonGenerator.writeNumberField("age", 22);//age:22 jsonGenerator.writeEndObject();//} jsonGenerator.writeArrayFieldStart("infos");//infos:[ jsonGenerator.writeNumber(22);//22 jsonGenerator.writeString("this is array");//this is array jsonGenerator.writeEndArray();//] jsonGenerator.writeEndObject();//} AccountBean bean = new AccountBean(); bean.setAddress("address"); bean.setEmail("email"); bean.setId(1); bean.setName("haha"); //complex Object jsonGenerator.writeStartObject();//{ jsonGenerator.writeObjectField("user", bean);//user:{bean} jsonGenerator.writeObjectField("infos", arr);//infos:[array] jsonGenerator.writeEndObject();//} } catch (Exception e) { e.printStackTrace(); } } 运行后,结果如下: jsonGenerator "aGVsbG8gd29ybGQgamFja3NvbiE=" true null 2.2c world jac worl "hello world jackson!" "hello world jackson!" {"user":{"name":"jackson","sex":true,"age":22},"infos":[22,"this is array"]} {"user":{"address":"address","name":"haha","id":1,"birthday":null,"email":"email"},"infos":["a","b","c"]} 怎么样?构造的json字符串和输出的结果是一致的吧。关键看懂用JSONGenerator提供的方法,完成一个Object的构建。
三、JSON转换成Java对象
1、 将json字符串转换成JavaBean对象
@Test public void readJson2Entity() { String json = "{\"address\":\"address\",\"name\":\"haha\",\"id\":1,\"email\":\"email\"}"; try { AccountBean acc = objectMapper.readValue(json, AccountBean.class); System.out.println(acc.getName()); System.out.println(acc); } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } 很简单,用到了ObjectMapper这个对象的readValue这个方法,这个方法需要提供2个参数。第一个参数就是解析的JSON字符串,第二个参数是即将将这个JSON解析吃什么Java对象,Java对象的类型。当然,还有其他相同签名方法,如果你有兴趣可以一一尝试使用方法,当然使用的方法和当前使用的方法大同小异。运行后,结果如下: haha haha#1#address#null#email
2、 将json字符串转换成List<Map>集合
/** * <b>function:</b>json字符串转换成list<map> * @author hoojo * @createDate 2010-11-23 下午06:12:01 */ @Test public void readJson2List() { String json = "[{\"address\": \"address2\",\"name\":\"haha2\",\"id\":2,\"email\":\"email2\"},"+ "{\"address\":\"address\",\"name\":\"haha\",\"id\":1,\"email\":\"email\"}]"; try { List<LinkedHashMap<String, Object>> list = objectMapper.readValue(json, List.class); System.out.println(list.size()); for (int i = 0; i < list.size(); i++) { Map<String, Object> map = list.get(i); Set<String> set = map.keySet(); for (Iterator<String> it = set.iterator();it.hasNext();) { String key = it.next(); System.out.println(key + ":" + map.get(key)); } } } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } 尝试过将上面的JSON转换成List,然后List中存放AccountBean,但结果失败了。但是支持Map集合。因为你转成List.class,但是不知道List存放何种类型。只好默然Map类型。因为所有的对象都可以转换成Map结合,运行后结果如下: 2 address:address2 name:haha2 id:2 email:email2 address:address name:haha id:1 email:email
3、 Json字符串转换成Array数组,由于上面的泛型转换不能识别到集合中的对象类型。所有这里用对象数组,可以解决这个问题。只不过它不再是集合,而是一个数组。当然这个不重要,你可以用Arrays.asList将其转换成List即可。
/** * <b>function:</b>json字符串转换成Array * @author hoojo * @createDate 2010-11-23 下午06:14:01 */ @Test public void readJson2Array() { String json = "[{\"address\": \"address2\",\"name\":\"haha2\",\"id\":2,\"email\":\"email2\"},"+ "{\"address\":\"address\",\"name\":\"haha\",\"id\":1,\"email\":\"email\"}]"; try { AccountBean[] arr = objectMapper.readValue(json, AccountBean[].class); System.out.println(arr.length); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } 运行后的结果: 2 haha2#2#address2#null#email2 haha#1#address#null#email
4、 Json字符串转换成Map集合
/** * <b>function:</b>json字符串转换Map集合 * @author hoojo * @createDate Nov 27, 2010 3:00:06 PM */ @Test public void readJson2Map() { String json = "{\"success\":true,\"A\":{\"address\": \"address2\",\"name\":\"haha2\",\"id\":2,\"email\":\"email2\"},"+ "\"B\":{\"address\":\"address\",\"name\":\"haha\",\"id\":1,\"email\":\"email\"}}"; try { Map<String, Map<String, Object>> maps = objectMapper.readValue(json, Map.class); System.out.println(maps.size()); Set<String> key = maps.keySet(); Iterator<String> iter = key.iterator(); while (iter.hasNext()) { String field = iter.next(); System.out.println(field + ":" + maps.get(field)); } } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } 运行后结果如下: 3 success:true A:{address=address2, name=haha2, id=2, email=email2} B:{address=address, name=haha, id=1, email=email}
四、Jackson对XML的支持
Jackson也可以完成java对象到xml的转换,转换后的结果要比json-lib更直观,不过它依赖于stax2-api.jar这个jar包。
/** * <b>function:</b>java对象转换成xml文档 * 需要额外的jar包 stax2-api.jar * @author hoojo * @createDate 2010-11-23 下午06:11:21 */ @Test public void writeObject2Xml() { //stax2-api-3.0.2.jar System.out.println("XmlMapper"); XmlMapper xml = new XmlMapper(); try { //javaBean转换成xml //xml.writeValue(System.out, bean); StringWriter sw = new StringWriter(); xml.writeValue(sw, bean); System.out.println(sw.toString()); //List转换成xml List<AccountBean> list = new ArrayList<AccountBean>(); list.add(bean); list.add(bean); System.out.println(xml.writeValueAsString(list)); //Map转换xml文档 Map<String, AccountBean> map = new HashMap<String, AccountBean>(); map.put("A", bean); map.put("B", bean); System.out.println(xml.writeValueAsString(map)); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } 运行上面的方法,结果如下: XmlMapper <unknown><address>china-Guangzhou</address><name>hoojo</name><id>1</id><birthday/><email>hoojo_@126.com</email></unknown> <unknown><unknown><address>china-Guangzhou</address><name>hoojo</name><id>1</id><birthday/><email>hoojo_@126.com</email></unknown> <email><address>china-Guangzhou</address><name>hoojo</name><id>1</id><birthday/><email>hoojo_@126.com</email></email></unknown> <unknown><A><address>china-Guangzhou</address><name>hoojo</name><id>1</id><birthday/><email>hoojo_@126.com</email></A> <B><address>china-Guangzhou</address><name>hoojo</name><id>1</id><birthday/><email>hoojo_@126.com</email></B></unknown> 看结果,根节点都是unknown 这个问题还没有解决,由于根节点没有转换出来,所有导致解析xml到Java对象,也无法完成。
所用的jar包 看附件。
转载请注明出处 本文出自:[url]http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html [/url]
- jackson-core-asl-1.9.9.jar (226.7 KB)
- 下载次数: 0
- json-lib-2.4.jar (155.4 KB)
- 下载次数: 0
发表评论
文章已被作者锁定,不允许评论。
-
java WeakHashMap学习(key是弱引用)
2018-06-21 09:31 1232在Java集合中有一种特殊的Map类型:WeakHashMap ... -
java HashMap TreeMap(key顺序) LinkedHashMap(插入顺序)学习
2018-06-07 10:27 953java为数据结构中的映射定义了一个接口java.util.M ... -
java RESTful 详解
2018-04-27 11:35 643(1)每一个URI代表一种资源,独一无二; (2)客户端 ... -
java 通过HttpsUrlConnection访问接口数据
2018-04-19 11:25 990server: ssl: key-stor ... -
java 使用多线程的场景总结
2018-04-10 14:35 1704在一个高并发的网站中,多线程是必不可少的。下面先说一下多线程在 ... -
java Enum枚举设置
2018-04-10 10:55 480/** * 数据状态:0:无效,1:有效 **/ ... -
java RestTemplate访问restful服务
2018-03-01 15:02 1621REST的基础知识 当谈论REST时,有一种常见的错误就是将其 ... -
java FYOpenApi实现短信发送
2018-01-02 17:10 11741.配置文件 sms.OpenUrl = http://s ... -
java JSONObject序列化包含Date类型数据的Java对象
2017-12-26 16:31 1617如果Date.class无法进行转换则使用Timestamp. ... -
java 用HttpsURLConnection进行传递中文时错误总结
2017-12-07 16:42 654传递中文时需要用Writer而不是OutputStream ... -
java 内存泄漏
2017-11-27 13:51 4951.内存溢出 out of memory ... -
ActiveMQ 三种发送消息方式(同步,异步,单向)
2017-11-17 10:25 2453MQ 发送普通消息有三种实现方式:可靠同步发送、可靠异步发送、 ... -
java Guava ListenableFuture实现线程回调功能
2017-11-14 10:17 1775java Future具有局限性。在实际应用中,当需要下 ... -
java Curator实现分布式锁
2017-09-05 14:39 1090Curator实现分布式锁主要依赖于zookeeper ... -
java Guava工具集学习(强大)
2017-09-05 10:28 432import java.util.Iterator ... -
java CyclicBarrier进行并发编程
2017-08-25 15:44 673CyclicBarrier允许一组线程相互等待达到一个公共的障 ... -
java 几种性能优化的总结
2017-08-23 14:08 3251、使用StringBuilder 一般 ... -
java 使用kyro进行高性能序列化对象和集合
2017-08-23 14:05 2152import java.io.ByteArrayInp ... -
java 对重复电话号码进行排除的优化(排序和前后对比)
2017-08-22 14:14 7911.先对10万数据排序; 2.对比前后两条数据 ; 3.筛 ... -
ActiveMQ 结合Spring进行数据同步
2017-07-19 15:27 584注意事项hibernate配置文件必须设置自动提交否则不能插入 ...
相关推荐
### Java常用框架学习笔记 #### Hibernate ##### 1.1 Hibernate 实现数据库操作步骤 - **导入所需的Jar包**:为了使用Hibernate框架,首先需要在项目中导入Hibernate库。这通常意味着添加一系列与Hibernate相关的...
Jackson框架的主要目标是简化JSON与Java对象之间的交互,使得开发者能够轻松地在Java应用中处理JSON格式的数据。 在Jackson中,主要有以下核心组件: 1. **JsonParser**:用于读取JSON输入流,提供了逐字段解析...
它是Jackson框架的基础部分,处理JSON流。 3. **Jackson-annotations**:这个模块包含了一系列注解,可以用来定制序列化和反序列化的行为,例如`@JsonProperty`、`@JsonIgnore`等。 压缩包中的"jsonjar"可能是一个...
本篇学习笔记将深入探讨Jackson框架的核心概念和使用方法,帮助你轻松应对JSON与Java对象之间的转换。 1. Jackson简介 Jackson是由FasterXML团队开发的一个开源项目,其主要目标是提供高性能、高效率的JSON处理功能...
Java框架学习demo.zip是一个压缩包,包含了多个与Java开发相关的示例项目,主要涉及了SSM框架(Spring、SpringMVC、Mybatis)的学习和测试。这些项目可以帮助开发者深入理解这三个核心框架的工作原理以及如何在实际...
Jackson框架是Java中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、灵活的JSON序列化和反序列化功能,使得在Java对象与JSON数据之间进行转换变得简单。这篇博客"Jackson 框架 json 到 复杂 list ...
1. **Jackson核心组件**:`jackson-core`是Jackson框架的基础,提供了JSON流式API(JsonParser和JsonGenerator)以及基本的反序列化和序列化功能。它是其他模块依赖的核心库。 2. **Jackson数据绑定**:`jackson-...
Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、灵活的JSON序列化和反序列化功能,使得在Java应用程序中与JSON数据交互变得非常方便。Jackson技术文档通常包括API参考、用户...
【JAVA-CS快速开发框架设计文档】是一份详细指导JAVA开发者在无IDE...通过这些内容的学习,开发者将能够独立于IDE创建完整的Java应用程序,并掌握无框架化开发的核心技巧,提升自身在各种开发环境下的适应性和灵活性。
Java Jackson 是一个广泛使用的开源库,用于在Java应用程序中处理JSON数据。它的核心部分,即“Jackson Core”,是整个框架的...通过不断学习和实践,可以更好地利用Jackson这个强大的库来提升Java应用的JSON处理能力。
27. **Spark**:大数据处理框架,专注于速度、易用性和高级分析,支持批处理、流处理和机器学习。 28. **Flink**:实时数据流处理框架,提供低延迟、状态管理和容错能力。 29. **Akka**:基于Actor模型的并发框架...
在本"Jackson学习实例"中,我们将深入探讨Jackson库的核心概念、主要功能以及如何在实际项目中应用。 一、Jackson简介 Jackson是由FasterXML团队开发的开源库,它的全名是com.fasterxml.jackson.databind,是Java...
Java提供了多种序列化方式,如Java自带的序列化、JSON(如Gson或Jackson)、Protobuf等。 4. **服务注册与发现**:在分布式环境中,服务发现是必要的,让客户端知道如何找到服务。简易版可能没有实现复杂的注册中心...
本压缩包"基于java的高性能的JSON处理 Jackson.zip"提供了一套详细的学习资源,帮助开发者深入理解并有效利用Jackson进行JSON操作。 Jackson库由FasterXML团队开发,其核心组件包括Jackson-databind、Jackson-core...
- `jackson-databind`:这是Jackson框架的主要部分,它提供了一种高效、灵活的方式来映射JSON到Java对象,反之亦然。通过`ObjectMapper`类,你可以轻松地实现序列化和反序列化操作。 - `jackson-annotations`:这...
### Java SSM框架总结 #### 一、SSM框架简介 SSM框架是Spring、SpringMVC和MyBatis三个开源框架的组合。在实际项目开发中,这三种框架经常一起使用,故简称SSM框架。 - **Spring**:一个轻量级的企业级应用框架,...
1. 更好的Spring集成:Spring框架从4.0版本开始推荐使用Jackson 2.6,因为这个版本增强了与Spring MVC的兼容性,提供了更好的类型安全性和错误处理。 2. 支持JSON-P(JSR 353):这是一个Java API,用于处理JSON内容...
Jackson与其他Java框架如Spring、Hibernate等有很好的兼容性,可以在这些框架中无缝使用。 10. **社区支持** Jackson拥有活跃的社区,不断更新和改进,修复已知问题,添加新特性,使得它成为Java开发者处理JSON的...
Jackson 可以很好地与Spring、Hibernate等其他框架集成,简化数据绑定和转换过程。 10. **博文链接中的知识点** 博文链接(已失效)可能涉及实际案例或教程,包括但不限于使用Jackson解析JSON,自定义序列化规则...
Jackson是Java领域中广泛使用的JSON处理库,它提供了高效的序列化和反序列化功能,使得在SpringMVC框架中处理JSON数据变得极其便捷。Jackson-core-2.6.2是Jackson核心库的一个版本,它包含了处理JSON基本结构(如...