当前位置:耘佑范文网 > 作文范文 >

Jackson,2开发详解x

| 浏览次数:

 Jackson 2 开发详解 Jackson 2 开发详解 作者:

 chszs ,转载需注明。博客主页:

 http://blog.csdn.net/chszs Jackson 2 库是流行的 Java JSON 解析库之一。本文主要讲述 Jackson 2 库的基本用法。

 1 、Jackson 2 库 目前 Jackson 2 库的最新版本为 2.6.3 版。使用它需要以下依赖包。

  <dependency>

 <groupId>com.fasterxml.jackson.core</groupId>

 <artifactId>jackson-core</artifactId>

 <version>2.6.3</version>

 </dependency>

 <dependency>

 <groupId>com.fasterxml.jackson.core</groupId>

 <artifactId>jackson-databind</artifactId>

 <version>2.6.3</version>

 </dependency>

 <dependency>

 <groupId>com.fasterxml.jackson.core</groupId>

 <artifactId>jackson-annotations</artifactId>

 <version>2.6.3</version>

 </dependency>

 基本的 Java 对象 User.java package json.ch.test;

 public class User {

 private String name;

 private int year;

 private String describe;

  public User() {

 super();

 }

  public User(String name, int year, String describe) {

 super();

 this.name = name;

 this.year = year;

 this.describe = describe;

 }

  public String getName() {

 return name;

 }

  public void setName(String name) {

 this.name = name;

 }

  public int getYear() {

 return year;

 }

  public void setYear(int year) {

 this.year = year;

 }

  public String getDescribe() {

 return describe;

 }

  public void setDescribe(String describe) {

 this.describe = describe;

 }

  @Override

 public String toString() {

 return "User [name=" + name + ", year=" + year + ", describe=" + describe + "]";

 }

 }

 2 、Java 对象转换为 JSON 使用 writeValue(…)方法

  ObjectMapper mapper = new ObjectMapper();

 User user = new User("Zhang san", 20, "He is a young boy.");

 try {

 mapper.writeValue(new File("t1.json"), user);

 } catch (IOException e) {

 e.printStackTrace();

 }

 try {

 String jsonString = mapper.writeValueAsString(user);

 System.out.println(jsonString);

 } catch (JsonProcessingException e) {

 e.printStackTrace();

 }

 3 、JSON 字符串转换为 Java 对象 使用 readValue(…)方法

  ObjectMapper mapper = new ObjectMapper();

 String jsonString = "{\"name\":\"Zhang san\",\"year\":20,\"describe\":\"He is a young boy.\"}";

 User user;

 try {

 user = mapper.readValue(jsonString, User.class);

 System.out.println(user.toString());

 } catch (IOException e) {

 e.printStackTrace();

 }

 try {

 User user1 = mapper.readValue(new File("t1.json"), User.class);

 System.out.println(user1.toString());

 } catch (IOException e) {

 e.printStackTrace();

 }

 4 、@JsonView 注释 @JsonView 注释是一个非常有用的注释,它用于控制对象中的字段。

 重写 User.java package json.ch.test;

  import com.fasterxml.jackson.annotation.JsonView;

 public class User {

 @JsonView(Views.Normal.class)

 private String name;

 @JsonView(Views.Normal.class)

 private int year;

 @JsonView(Views.Manager.class)

 private String describe;

  public User() {

 super();

 }

  public User(String name, int year, String describe) {

 super();

 this.name = name;

 this.year = year;

 this.describe = describe;

 }

  public String getName() {

 return name;

 }

  public void setName(String name) {

 this.name = name;

 }

  public int getYear() {

 return year;

 }

  public void setYear(int year) {

 this.year = year;

 }

  public String getDescribe() {

 return describe;

 }

  public void setDescribe(String describe) {

 this.describe = describe;

 }

  @Override

 public String toString() {

 return "User [name=" + name + ", year=" + year + ", describe=" + describe + "]";

 }

 }

 定义 Views.java package json.ch.test;

 public class Views {

 public static class Normal{};

 public static class Manager extends Normal{};

 }

 测试代码: package json.ch.test;

  import com.fasterxml.jackson.databind.ObjectMapper;

  public class Test3 {

 public static void main(String[] args) {

 ObjectMapper mapper = new ObjectMapper();

 User user = new User("Zhang san", 20, "He is a young boy.");

 try{

 System.out.println("Normal View");

 String normalView = mapper.writerWithView(Views.Normal.clas

 s)

 .writeValueAsString(user);

 System.out.println(normalView);

 String json1 = "{\"name\":\"Zhang san\",\"year\":20}";

 User normalUser = mapper.readerWithView(Views.Normal.class)

 .forType(User.class).readValue(json1);

 System.out.println(normalUser);

 System.out.println("Manager View");

 String managerView = mapper.writerWithView(Views.Manager.class)

 .writeValueAsString(user);

 System.out.println(managerView);

 String json2 = "{\"name\":\"Zhang san\",\"year\":20,\"describe\":\"He is a young boy.\"}";

 User managerUser = mapper.readerWithView(Views.Manager.class)

 .forType(User.class).readValue(json2);

 System.out.println(managerUser.toString());

 }catch(Exception e){

 e.printStackTrace();

 }

 }

 }

 输出结果:

 Normal View

 {"name":"Zhang san","year":20}

 User [name=Zhang san, year=20, describe=null]

 Manager View

 {"name":"Zhang san","year":20,"describe":"He is a young boy."}

 User [name=Zhang san, year=20, describe=He is a young boy.]


推荐访问:详解 开发 Jackson

热门排行

春节晚会观后感600字14篇

春节晚会观后感600字14篇春节晚会观后感600字篇1晚上八点,吃完年夜饭后,我们一家人整整齐齐坐在

2020央视春晚观后感3篇

2020央视春晚观后感3篇2020央视春晚观后感篇1“爆竹声中一岁除,春风送暖入屠苏。千门万门曈曈日

2023特殊符号图案大全(全文)

๑• •ั๑๑฀฀๑♬✿ 。 :*★☆⊙☺☻☼♠♥♡♣♤♥♦♧♨♩ิε฀฀䁠iddot;฀bull;●○●ゃ卣䁠hearts;♡๑฀฀☜☞☎☏♡⊙◎☺☻✖╄►◄▧▨♨◐◑...

2022央视虎年春晚观后感高中作文7篇

2022央视虎年春晚观后感高中作文7篇2022央视虎年春晚观后感高中作文篇1时间匆匆流逝,已经到了农

积极分子谈话记录30篇_确定入党积极分子谈话会议记录

确定入党积极分子谈话会议记录篇一谈话时间:XXXX年6月19日谈话地点:谈话对象:入党联系人:记录人

春晚观后感300字4篇

春晚观后感300字4篇春晚观后感300字篇1春节是每个中国人都颇为期待的一天,它不仅仅代表家庭团圆的

幼儿园谈话记录:幼儿园晨谈记录100篇

坦直幼儿园党团结对谈心记录(2010年)序号时间去谈心人姓名被谈心人姓名谈心内容备注110 2 26

2020年医院党员谈心谈话记录_2020年谈话记录

职工医院谈心谈话记录单位:职工医院谈心交心对象签名年月日

2022年党支部领导班子“迎盛会、铸忠诚、强担当、创业绩”主题教育专题组织生活会对照检查材料(思想学习工作生活四个方面)【完整版】

2022年党支部领导班子“迎盛会、铸忠诚、强担当、创业绩”主题教育专题组织生活会对照检查材料(思想学习工作生活四个方面)【完整版】下面是小编为大家整理的《20...

【幼儿园谈话记录】 幼儿园晨谈记录100篇

坦直幼儿园党团结对谈心记录(2010年)