Jackson实现json的序列化反序列化
2017-11-03 10:55
507 查看
package cn.veryjava.funny; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Assert; import org.junit.Test; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Json { @Test public void testJson() { Employee e1 = new Employee("1", "吕永强", 88); Employee e2 = new Employee("2", "高文君", 89); Employee e3 = new Employee("3", "孟贝", 90); List<Employee> employees = new ArrayList<>(); employees.add(e1); employees.add(e2); employees.add(e3); Company 序列化 = new Company("1", "脚印科技", employees); // 序列化 ObjectMapper om = new ObjectMapper(); String json = ""; try { json = om.writeValueAsString(序列化); } catch (JsonProcessingException e) { System.out.println("json序列化出错"); } System.out.println("序列化后的字符串:" + json); // 反序列化 Company 反序列化 = null; try { 反序列化 = om.readValue(json, Company.class); } catch (IOException e) { System.out.println("json反序列化出错"); } System.out.println("反序列化后对象的toString():" + 反序列化); // 直接打印对象属性 Assert.assertNotEquals(null, 反序列化); System.out.println("公司ID:" + 反序列化.getId()); System.out.println("公司名称:" + 反序列化.getName()); 反序列化.getEmployees().forEach(employee -> { System.out.println("员工id:" + employee.getId()); System.out.println("员工姓名:" + employee.getName()); System.out.println("员工年龄:" + employee.getAge()); }); Map<String, Object> map = new HashMap<>(); map.put("身高", 180); map.put("有没有对象", "有"); List<String> l = new ArrayList<>(); l.add("a"); l.add("e"); l.add("u"); map.put("list", l); String json1 = ""; try { json1 = om.writeValueAsString(map); } catch (JsonProcessingException e) { // 略 } System.out.println("map对象序列化后的字符串:" + json1); try { Map<String, Object> map2 = om.readValue(json1, Map.class); System.out.println("身高:" + map2.get("身高")); System.out.println("有没有对象:" + map2.get("有没有对象")); List<String> lll = (List<String>) map2.get("list"); lll.forEach(llll-> System.out.println(llll)); } catch (IOException e) { // 略 } } } class Company { private String id; private String name; private List<Employee> employees; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Employee> getEmployees() { return employees; } public void setEmployees(List<Employee> employees) { this.employees = employees; } public Company(String id, String name, List<Employee> employees) { this.id = id; this.name = name; this.employees = employees; } public Company() { } @Override public String toString() { return "Company{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", employees=" + employees + '}'; } } class Employee { private String id; private String name; private int age; public String getId() { return id; } public void setId(String id) { this.id = id; } 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; } public Employee(String id, String name, int age) { this.id = id; this.name = name; this.age = age; } public Employee() { } @Override public String toString() { return "Employee{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", age=" + age + '}'; } }
相关文章推荐
- Json工具类--使用1.x版本Jackson实现json的序列化和反序列化
- Json工具类--使用2.x版本的Jackson实现了Json的序列化和反序列化
- ASP.NET C#使用JavaScriptSerializer实现序列化与反序列化得到JSON
- jackson的序列化和反序列化的实现
- .NET Framewok 3.5 中 JSON 序列化和反序列化的简单实现
- jackson进行json序列化和反序列化
- JSON 序列化和反序列化——JavaScriptSerializer实现
- Windows CE /SmartDeviceProject 操作Json数据实现对象序列化和反序列化
- JSON 序列化和反序列化——JavaScriptSerializer实现
- JSON 序列化和反序列化——JavaScriptSerializer实现
- C#使用DataContractJsonSerializer实现Json格式的序列化和反序列化
- C#实现的json序列化和反序列化代码实例
- javascript实现json的序列化和反序列化功能
- [asp.net]C#实现json的序列化和反序列化
- 实现json的序列化和反序列化
- Java利用Jackson进行JSON序列化和反序列化
- JSON 序列化和反序列化——.net3.5自带类库实现
- jackson json 序列化与反序列化时json中字段名称问题
- .NET Framewok 3.5 中 JSON 序列化和反序列化的简单实现
- C#实现JSON序列化与反序列化介绍