Java对象、Json、Xml转换工具Jackson使用

互联网 17-2-22

所需jar包如下,按照名称搜索下载即可。

接下来编写测试用例,我们需要一个java类:

package com.csii.jackson.object;  public class Book{      private String name;      private int price;      public String getName() {          return name;      }    public void setName(String name) {              this.name = name;      }    public int getPrice() {              return price;      }    public void setPrice(int price) {              this.price = price;      }    public Book() {        }    public Book(String name,int price) {              this.name = name;              this.price = price;      }       @Override          public String toString() {           return "name:" + name +"; price:" + price;      }    }

1.將Java对象转换为Json字符串:

    @Test    public void testGenJson()      {          ObjectMapper objMapper = new ObjectMapper();          Book book = new Book("Think in Java",100);        try {              jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);              jsonGen.writeObject(book);          } catch (IOException e) {               e.printStackTrace();          }       }

运行测试方法,控制台输出:

{"name":"Think in Java","price":100}

2.將Json字符串转为Java对象:

    /*       * Json转Java对象       */      @Test    public void testGenObjByJson()      {          ObjectMapper objMapper = new ObjectMapper();          String json = "{\"name\":\"Think in Java\",\"price\":100}";           try {              Book book = objMapper.readValue(json, Book.class);              System.out.println(book);          } catch (IOException e) {               e.printStackTrace();          }        }

由于我们重写了Book类的toString方法,运行测试方法,控制台输出:

name:Think in Java; price:100

3.將Java对象转为Xml格式:

     /*       * Java对象转xml       */      @Test    public void testGenXml()      {          XmlMapper xmlMapper = new XmlMapper();            Book book = new Book("Think in Java",100);        try {              String xmlStr =  xmlMapper.writeValueAsString(book);              System.out.println(xmlStr);          } catch (JsonProcessingException e) {               e.printStackTrace();          }      }

运行测试方法,控制台输出:

<Book xmlns=""><name>Think in Java</name><price>100</price></Book>

4.將xml格式字符串转为Java对象:

    /*       * xml转Java对象       */      @Test    public void testGenObjByXml()      {          XmlMapper xmlMapper = new XmlMapper();          String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>";           try {              Book book = xmlMapper.readValue(xmlStr, Book.class);              System.out.println(book);          } catch (IOException e) {            // TODO Auto-generated catch block              e.printStackTrace();          }        }

输出内容:

name:Think in Java; price:100

完整的测试用例代码:

package com.csii.jackson.test;  import java.io.IOException;  import org.junit.Test;  import com.csii.jackson.object.Book;  import com.fasterxml.jackson.core.JsonEncoding;  import com.fasterxml.jackson.core.JsonGenerator;  import com.fasterxml.jackson.core.JsonProcessingException;  import com.fasterxml.jackson.databind.ObjectMapper;  import com.fasterxml.jackson.dataformat.xml.XmlMapper;  @SuppressWarnings("deprecation")  public class JsonTest {       private JsonGenerator jsonGen = null;      /*       * Java对象转 Json       */      @Test      public void testGenJson()      {          ObjectMapper objMapper = new ObjectMapper();          Book book = new Book("Think in Java",100);          try {              jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);              jsonGen.writeObject(book);          } catch (IOException e) {               e.printStackTrace();          }       }    /*       * Json转Java对象       */      @Test      public void testGenObjByJson()      {          ObjectMapper objMapper = new ObjectMapper();          String json = "{\"name\":\"Think in Java\",\"price\":100}";           try {              Book book = objMapper.readValue(json, Book.class);              System.out.println(book);          } catch (IOException e) {               e.printStackTrace();          }        }    /*       * Java对象转xml       */      @Test      public void testGenXml()      {          XmlMapper xmlMapper = new XmlMapper();            Book book = new Book("Think in Java",100);          try {              String xmlStr =  xmlMapper.writeValueAsString(book);              System.out.println(xmlStr);          } catch (JsonProcessingException e) {               e.printStackTrace();          }      }    /*       * xml转Java对象       */      @Test      public void testGenObjByXml()      {          XmlMapper xmlMapper = new XmlMapper();          String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>";           try {              Book book = xmlMapper.readValue(xmlStr, Book.class);              System.out.println(book);          } catch (IOException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }        }  }

所需jar包如下,按照名称搜索下载即可。

接下来编写测试用例,我们需要一个java类:

package com.csii.jackson.object;  public class Book{      private String name;      private int price;      public String getName() {          return name;      }    public void setName(String name) {              this.name = name;      }    public int getPrice() {              return price;      }    public void setPrice(int price) {              this.price = price;      }    public Book() {        }    public Book(String name,int price) {              this.name = name;              this.price = price;      }       @Override          public String toString() {           return "name:" + name +"; price:" + price;      }    }

1.將Java对象转换为Json字符串:

    @Test    public void testGenJson()      {          ObjectMapper objMapper = new ObjectMapper();          Book book = new Book("Think in Java",100);        try {              jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);              jsonGen.writeObject(book);          } catch (IOException e) {               e.printStackTrace();          }       }

运行测试方法,控制台输出:

{"name":"Think in Java","price":100}

2.將Json字符串转为Java对象:

    /*       * Json转Java对象       */      @Test    public void testGenObjByJson()      {          ObjectMapper objMapper = new ObjectMapper();          String json = "{\"name\":\"Think in Java\",\"price\":100}";           try {              Book book = objMapper.readValue(json, Book.class);              System.out.println(book);          } catch (IOException e) {               e.printStackTrace();          }        }

由于我们重写了Book类的toString方法,运行测试方法,控制台输出:

name:Think in Java; price:100

3.將Java对象转为Xml格式:

     /*       * Java对象转xml       */      @Test    public void testGenXml()      {          XmlMapper xmlMapper = new XmlMapper();            Book book = new Book("Think in Java",100);        try {              String xmlStr =  xmlMapper.writeValueAsString(book);              System.out.println(xmlStr);          } catch (JsonProcessingException e) {               e.printStackTrace();          }      }

运行测试方法,控制台输出:

<Book xmlns=""><name>Think in Java</name><price>100</price></Book>

4.將xml格式字符串转为Java对象:

    /*       * xml转Java对象       */      @Test    public void testGenObjByXml()      {          XmlMapper xmlMapper = new XmlMapper();          String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>";           try {              Book book = xmlMapper.readValue(xmlStr, Book.class);              System.out.println(book);          } catch (IOException e) {            // TODO Auto-generated catch block              e.printStackTrace();          }        }

输出内容:

name:Think in Java; price:100

完整的测试用例代码:

package com.csii.jackson.test;  import java.io.IOException;  import org.junit.Test;  import com.csii.jackson.object.Book;  import com.fasterxml.jackson.core.JsonEncoding;  import com.fasterxml.jackson.core.JsonGenerator;  import com.fasterxml.jackson.core.JsonProcessingException;  import com.fasterxml.jackson.databind.ObjectMapper;  import com.fasterxml.jackson.dataformat.xml.XmlMapper;  @SuppressWarnings("deprecation")  public class JsonTest {       private JsonGenerator jsonGen = null;      /*       * Java对象转 Json       */      @Test      public void testGenJson()      {          ObjectMapper objMapper = new ObjectMapper();          Book book = new Book("Think in Java",100);          try {              jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);              jsonGen.writeObject(book);          } catch (IOException e) {               e.printStackTrace();          }       }    /*       * Json转Java对象       */      @Test      public void testGenObjByJson()      {          ObjectMapper objMapper = new ObjectMapper();          String json = "{\"name\":\"Think in Java\",\"price\":100}";           try {              Book book = objMapper.readValue(json, Book.class);              System.out.println(book);          } catch (IOException e) {               e.printStackTrace();          }        }    /*       * Java对象转xml       */      @Test      public void testGenXml()      {          XmlMapper xmlMapper = new XmlMapper();            Book book = new Book("Think in Java",100);          try {              String xmlStr =  xmlMapper.writeValueAsString(book);              System.out.println(xmlStr);          } catch (JsonProcessingException e) {               e.printStackTrace();          }      }    /*       * xml转Java对象       */      @Test      public void testGenObjByXml()      {          XmlMapper xmlMapper = new XmlMapper();          String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>";           try {              Book book = xmlMapper.readValue(xmlStr, Book.class);              System.out.println(book);          } catch (IOException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }        }  }

以上就是Java对象、Json、Xml转换工具Jackson使用的内容,更多相关内容请关注PHP中文网(www.php.cn)!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:Java&Xml教程(十)XML作为属性文件使用

相关资讯