通过jackson将对象与JSON之间相互转化

1.导入依赖

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.5</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.5</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.5</version>
</dependency>

2.测试用对象

public class VoucherDzDetailResponse {

    private String eInvoiceId;
    private String fileUrl;
    private Contents Content;

}

3.测试demo

@Test
public void TestObjectMapper() throws Exception{

    ObjectMapper objectMapper = new ObjectMapper();

    //序列化的时候序列对象的所有属性
    objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);

    //反序列化的时候如果多了其他属性,不抛出异常
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

    //如果是空对象的时候,不抛异常
    objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);

    //取消时间的转化格式,默认是时间戳,可以取消,同时需要设置要表现的时间格式
    objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);

    objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

    VoucherDzDetailResponse voucherDzDetailResponse = new VoucherDzDetailResponse();
    voucherDzDetailResponse.setFileUrl("http://221.7.95.99:1919");
    voucherDzDetailResponse.setEInvoiceId("475200");

    String value = objectMapper.writeValueAsString(voucherDzDetailResponse);
    System.out.println(value);

    VoucherDzDetailResponse response = objectMapper.readValue(value, VoucherDzDetailResponse.class);
    System.out.println(response);

    System.out.println("结束标志");

}

将map与json相互转化同理

@Test
public void TestObjectMapper2() throws Exception{

    ObjectMapper objectMapper = new ObjectMapper();

    //序列化的时候序列对象的所有属性
    objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);

    //反序列化的时候如果多了其他属性,不抛出异常
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

    //如果是空对象的时候,不抛异常
    objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);

    //取消时间的转化格式,默认是时间戳,可以取消,同时需要设置要表现的时间格式
    objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);

    objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

    Map map = new HashMap();
    map.put("fileUrl","http://221.7.95.99:1919/eServer/zlb/getofdz");
    map.put("eInvoiceId","475200");

    String value = objectMapper.writeValueAsString(map);
    System.out.println(value);

    Map response = objectMapper.readValue(value, Map.class);
    System.out.println(response);

    System.out.println("结束标志");

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值