Jackson - Java序列化与反序列化框架
来源:互联网 发布:学好英语的软件 编辑:程序博客网 时间:2024/06/06 15:04
上一篇文章中,提到java中使用jackson做序列化与反序列化,今天就具体说说Jackson如何做序列化与反序列化。
Customer类
public class Customer {private Long Id;private String Username;private String Password;public Long getId() {return Id;}public void setId(Long id) {Id = id;}public String getUsername() {return Username;}public void setUsername(String username) {Username = username;}public String getPassword() {return Password;}public void setPassword(String password) {Password = password;}}1.实体类转json
ObjectMapper objectMapper = new ObjectMapper();JsonFactory jsonFactory = objectMapper.getJsonFactory();JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(System.out, JsonEncoding.UTF8);Customer customer = new Customer();customer.setId(1L);customer.setUsername("justin");customer.setPassword("1234");System.out.println("JsonGenerator");jsonGenerator.writeObject(customer);System.out.println();System.out.println("objectMapper");objectMapper.writeValue(System.out, customer);输出结果:
JsonGenerator{"id":1,"username":"justin","password":"1234"}objectMapper{"id":1,"username":"justin","password":"1234"}2)集合转化成json
ObjectMapper objectMapper = new ObjectMapper();JsonFactory jsonFactory = objectMapper.getJsonFactory();JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(System.out, JsonEncoding.UTF8);List<Customer> list = new ArrayList<Customer>();Customer customer1 = new Customer();customer1.setId(1L);customer1.setUsername("justin1");customer1.setPassword("1234");list.add(customer1); Customer customer2 = new Customer();customer2.setId(2L);customer2.setUsername("justin2");customer2.setPassword("12345");list.add(customer2); System.out.println("jsonGenerator list");//list转换成JSON字符串 jsonGenerator.writeObject(list);System.out.println();System.out.println("ObjectMapper2");//用objectMapper直接返回list转换成的JSON字符串System.out.println("1###" + objectMapper.writeValueAsString(list));System.out.print("2###");//objectMapper list转换成JSON字符串objectMapper.writeValue(System.out, list);输出结果:
jsonGenerator list[{"id":1,"username":"justin1","password":"1234"},{"id":2,"username":"justin2","password":"12345"}]ObjectMapper21###[{"id":1,"username":"justin1","password":"1234"},{"id":2,"username":"justin2","password":"12345"}]2###[{"id":1,"username":"justin1","password":"1234"},{"id":2,"username":"justin2","password":"12345"}]3)Map转json
ObjectMapper objectMapper = new ObjectMapper();JsonFactory jsonFactory = objectMapper.getJsonFactory();JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(System.out, JsonEncoding.UTF8);Customer customer1 = new Customer();customer1.setId(1L);customer1.setUsername("justin1");customer1.setPassword("1234"); Map<String, Object> map = new HashMap<String, Object>();map.put("account", customer1);customer1 = new Customer();customer1.setUsername("du");customer1.setPassword("1222");map.put("account2", customer1); System.out.println("jsonGenerator");jsonGenerator.writeObject(map);System.out.println(""); System.out.println("objectMapper");objectMapper.writeValue(System.out, map);输出结果:
jsonGenerator{"account2":{"id":null,"username":"du","password":"1222"},"name":"justin1","account":{"id":1,"username":"justin1","password":"1234"}}objectMapper{"account2":{"id":null,"username":"du","password":"1222"},"name":"justin1","account":{"id":1,"username":"justin1","password":"1234"}}4)Json装Object
ObjectMapper objectMapper = new ObjectMapper();JsonFactory jsonFactory = objectMapper.getJsonFactory();JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(System.out, JsonEncoding.UTF8);String json = "{\"id\":1,\"username\":\"justin\",\"password\":\"12345\"}";try {Customer newcustomer = objectMapper.readValue(json, Customer.class);System.out.println(newcustomer.getUsername());System.out.println(newcustomer.getPassword());} catch (JsonParseException e) {e.printStackTrace();} catch (JsonMappingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
输出:
justin12345
5)Json转对象集合
ObjectMapper objectMapper = new ObjectMapper();JsonFactory jsonFactory = objectMapper.getJsonFactory();JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(System.out, JsonEncoding.UTF8);String json = "[{\"id\":1,\"username\":\"justin\",\"password\":\"12345\"},{\"id\":2,\"username\":\"justin2\",\"password\":\"123456\"}]";try {List<LinkedHashMap<String, Object>> customers = objectMapper.readValue(json, List.class);System.out.println(customers.size());for (int i = 0; i < customers.size(); i++) {Map<String, Object> map = customers.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();}
输出结果:
2id:1username:justinpassword:12345id:2username:justin2password:123456总结:
jackson能够非常方便地做对象(对象集合)和json之间的转换,这些例子基本概括了所有的应用情形,欢迎留言交流!
0 0
- Jackson - Java序列化与反序列化框架
- Json_JackSon_lesson1 Jackson的 序列化与反序列化
- Jackson序列化和反序列化
- Jackson 枚举序列化/反序列化
- jackson 序列化/反序列化
- java jackson avro kryo等几种序列化与反序列化工具的使用
- java序列化与反序列化
- java序列化与反序列化
- java序列化与反序列化
- java序列化与反序列化
- Java序列化与反序列化
- Java序列化与反序列化
- java 序列化 与 反序列化
- java序列化与反序列化
- JAVA序列化与反序列化
- java序列化与反序列化
- java序列化与反序列化
- java序列化与反序列化
- return和exit的区别
- CABasicAnimation 动画
- [php] 点击刷新验证码
- Mike and Feet - CodeForces #547 B
- Android ViewPager控件实现图片轮播
- Jackson - Java序列化与反序列化框架
- Codeforces Round #305 (Div. 2) C. Mike and Frog
- C语言中的数据类型字长
- 货币问题_1549
- 我的黑马基础测试题
- SharePoint 2013 平台 创建 Power view Report 共享数据源(RSDS)
- 单循环链表
- MongoDB之bson的介绍
- Codeforces Round #305 (Div. 2)——D