栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 前沿技术 > 人工智能 > NLP

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

NLP 更新时间:发布时间: 百科书网 趣学号


在Java项目中將一个对象转换成一段Json格式的字符串是非常常见的,能够实现这种需求的工具包也比较多,例如Gson、JSON-lib、Jackson等等。本文主要介绍Jackson的使用,Jackson除了能实现Java对象与Json串的互转外,还能將Java对象转换为Xml格式,使用较为简单而且据说效率比较高。
对于Jackson的jar包我们可以从maven资源库中下载:http://www.iotsi.net/

所需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对象:

        @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格式:

         @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();        }    }

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

Think in Java100

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

        @Test    public void testGenObjByXml()    {        XmlMapper xmlMapper = new XmlMapper();        String xmlStr = "Think in Java100";         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;        @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();        }     }        @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();        }      }        @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();        }    }        @Test    public void testGenObjByXml()    {        XmlMapper xmlMapper = new XmlMapper();        String xmlStr = "Think in Java100";         try {            Book book = xmlMapper.readValue(xmlStr, Book.class);            System.out.println(book);        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

在Java项目中將一个对象转换成一段Json格式的字符串是非常常见的,能够实现这种需求的工具包也比较多,例如Gson、JSON-lib、Jackson等等。本文主要介绍Jackson的使用,Jackson除了能实现Java对象与Json串的互转外,还能將Java对象转换为Xml格式,使用较为简单而且据说效率比较高。
对于Jackson的jar包我们可以从maven资源库中下载:http://www.iotsi.net/

所需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对象:

        @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格式:

         @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();        }    }

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

Think in Java100

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

        @Test    public void testGenObjByXml()    {        XmlMapper xmlMapper = new XmlMapper();        String xmlStr = "Think in Java100";         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;        @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();        }     }        @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();        }      }        @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();        }    }        @Test    public void testGenObjByXml()    {        XmlMapper xmlMapper = new XmlMapper();        String xmlStr = "Think in Java100";         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.iotsi.net)!

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/794809.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号