博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jackson(ObjectMapper)的简单使用(可转xml)
阅读量:4518 次
发布时间:2019-06-08

本文共 3608 字,大约阅读时间需要 12 分钟。

参考文章:  (原文章更详细哦,且有介绍xml与java对象的互转)

参考文章作者:hoojo

本例maven配置:

com.fasterxml.jackson.core
jackson-databind
2.4.1
org.codehaus.jackson
jackson-jaxrs
1.9.11

测试代码:

import java.io.IOException;import com.fasterxml.jackson.core.JsonEncoding;import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.databind.ObjectMapper;public class TestJackSon {    // 声明两个转换器    private ObjectMapper objectMapper = null; // 一般使用ObjectMapper就已足够    private JsonGenerator jsonGenerator = null; // 需要关闭    /**     * Java对象转换成JSON_1(objectMapper)     */    public void test1() {        // 实例化转换器        objectMapper = new ObjectMapper();        // 测试        try {            User user = new User("ZhangSan", 25, "abc@163.com");            // 直接输出转化结果到服务台,返回void            System.out.println("直接输出到服务台:");            objectMapper.writeValue(System.out, user); // user可替换为List,Map等等其他类型,都可正常输出        } catch (Exception e) {            e.printStackTrace();        }    }    /**     * Java对象转换成JSON_2(objectMapper)     */    public void test2() {        // 实例化转换器        objectMapper = new ObjectMapper();        // 测试        try {            User user = new User("ZhangSan", 25, "abc@163.com");            // 返回String            String json = objectMapper.writeValueAsString(user); // user可替换为List,Map等等其他类型,都可正常输出            System.out.println("返回String:");            System.out.println(json);        } catch (Exception e) {            e.printStackTrace();        }    }    /**     * Json转Java对象(objectMapper)     */    public void test3() {        // 实例化转换器        objectMapper = new ObjectMapper();        // 测试        try {            String json = "{\"name\":\"ZhangSan\",\"age\":25,\"emailAddress\":\"abc@163.com\"}";            User user = objectMapper.readValue(json, User.class);            System.out.println(user.getName() + " | " + user.getAge() + " | " + user.getEmailAddress());        } catch (Exception e) {            e.printStackTrace();        }    }    /**     * jsonGenerator的简单使用     */    public void test4() {        // 实例化转换器        objectMapper = new ObjectMapper();        try {            jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8);            User user = new User("ZhangSan", 25, "abc@163.com");            // 测试            System.out.println("jsonGenerator:");            jsonGenerator.writeObject(user); //直接输出到控制台            // jsonGenerator需要关闭            if (jsonGenerator != null) {                jsonGenerator.flush();            }            if (!jsonGenerator.isClosed()) {                jsonGenerator.close();            }        } catch (IOException e) {            e.printStackTrace();        }    }    /**     * 测试main     */    public static void main(String[] args) {        TestJackSon test = new TestJackSon();        test.test4();    }}class User {    public String name;    public int age;    public String emailAddress;    /**     * 构造函数     */    public User(String name, int age, String emailAddress) {        super();        this.name = name;        this.age = age;        this.emailAddress = emailAddress;    }    // getters/setters(略)}

 

追加记录(2017-02-16):

可增加如下配置,解决json中属性多于java对象中属性时报错的问题.

objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); XXX xxx = objectMapper.readValue(jsonResult, XXX.class);

 

转载于:https://www.cnblogs.com/zj0208/p/6070051.html

你可能感兴趣的文章
面向接口编程详解(二)——编程实例
查看>>
解决java.lang.NoClassDefFoundError: org/apache/log4j/Level
查看>>
端口号
查看>>
mysql for macOS安装
查看>>
iOS中的KeyChain的用途
查看>>
jquery与checkbox的checked属性的问题
查看>>
HDU5092——Seam Carving(动态规划+回溯)(2014上海邀请赛重现)
查看>>
java 格式化字符串
查看>>
[.Net]轻量ORM——Dapper
查看>>
语言基础
查看>>
C# : 操作Word文件的API - (将C# source中的xml注释转换成word文档)
查看>>
C#中字符串转换成枚举类型的方法
查看>>
psplash
查看>>
git的安装和简单使用
查看>>
20151024-1025-威海-第5届全国高校软件工程专业教育年会参会总结
查看>>
Airplace平台
查看>>
TinyOS实例介绍
查看>>
15个nosql数据库
查看>>
css hack 尽我所见
查看>>
[转]ORACLE联机日志文件无故全部消失
查看>>