美文网首页
java的类和JSON之间的转换

java的类和JSON之间的转换

作者: thdqn | 来源:发表于2019-07-25 16:06 被阅读0次
  1. JSON格式数组包含obj类型转成 list,
    如 [{ContentId: 1, IsForever: false}] 格式,

定义实体类

import com.fasterxml.jackson.annotation.JsonProperty;

public class Content {
    @JsonProperty("ContentId")
    private String contentId;

    @JsonProperty("IsForever")
    private boolean isForever;

    public String getContentId() {
        return contentId;
    }

    public void setContentId(String contentId) {
        this.contentId = contentId;
    }

    public boolean isForever() {
        return isForever;
    }

    public void setForever(boolean forever) {
        isForever = forever;
    }
}

当遇到有字段开头大写的时候需要用 JsonProperty 注解,不然java不能正确映射 大写的开头的字段,他会转成小写的,从而导致转换失败,
这里使用ObjectMapper来转换


public class JacksonUtil {
    private static ObjectMapper objectMapper = null;
    static{
        objectMapper = new ObjectMapper();
        // 如果json中有新增的字段并且是实体类类中不存在的,不报错
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    }

    // 类转化成JSON
    public static String GetJSON(Object obj){
        try {
            return objectMapper.writeValueAsString(obj);
        } catch(Exception e){
            e.printStackTrace();
        }
        return null;
    }
    // 数组里面包含obj格式的类的json转换成类
    public static <T> T getAnyBean(String json, TypeReference<?> valueTypeRef){
        T dataBean=null;
        try {
            dataBean= objectMapper.readValue(json, valueTypeRef);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dataBean;
    }
    // 普通obj类型的json类转换成类
    public static <T> T getAnyBean(String json, Class c){
        T dataBean=null;
        try {
            dataBean= (T)objectMapper.readValue(json, c);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dataBean;
    }
}
// cpData的数据格式为[{ContentId: "1",IsForever: false}]
List<Content> fileTextList = JacksonUtil.getAnyBean(cpData, new TypeReference<List<Content>>(){});
// 转换成了Content的list

// star数据格式是{ContentId: "1",IsForever: false}
Content content = JacksonUtil.getAnyBean(star, Content.class);

相关文章

  • java的类和JSON之间的转换

    JSON格式数组包含obj类型转成 list,如 [{ContentId: 1, IsForever: false...

  • jackson使用

    jackson进行json转换的主要类就是ObjectMapper JSON转java对象 readValue(j...

  • Java中必须了解的常用类

    学习了解# Java中的包装类 Java中基本类型和包装类型之间的转换 Java中基本类型和字符串之间的转换 使用...

  • 2018-09-18

    json和对象互转 json和pojo之间的转换

  • Gson是何方妖孽

    Gson是Google提供的,用来在Java对象和Json数据之间进行映射的java类库。 可以将一个Json字符...

  • Java 中基本类型和包装类之间的转换

    Java 中基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包...

  • Android之Google Gson介绍

    Gson GSON 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库...

  • Gson

    Gson Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库...

  • GSON解析常见的问题:com.google.gson.inte

    Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一...

  • Gson

    Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一...

网友评论

      本文标题:java的类和JSON之间的转换

      本文链接:https://www.haomeiwen.com/subject/npihrctx.html