Json字符串轉換

1.使用阿里的fastjson


pom:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.60</version>
</dependency>

主要API是: JSON.toJSONXXX()和JSON.parseXXX()

序列化:
String jsonString = JSON.toJSONString(obj);

反序列化:
VO vo = JSON.parseObject("...", VO.class);

泛型反序列化:
List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {});

2.使用jackson


pom:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.10.0</version>
</dependency>

主要API:ObjectMapper.writeValueAsString() 和 ObjectMapper.readValue()

private ObjectMapper mapper;(使用前需要實例化)

序列化:
try{
    String jsonString = mapper.writeValueAsString(obj); 
}catch(IOException e){
    ...
}


反序列化:
try{
    VO vo = mapper.readValue("...", VO.class);
}catch(IOException e){
    ...
}


泛型反序列化:
try{
    List<VO> list = mapper.readValue("...", new JavaType<List<VO>>() {});
}catch(IOException e){
    ...
}

 

3.使用谷歌的GSON

pom:

<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.6</version>
</dependency>

主要API: toJson() 和 fromJson

private static final Gson gson = new Gson();

序列化:
String jsonString = gson.toJson(obj);

反序列化:
VO vo = gson.fromJson("...", VO.class);

泛型反序列化:
List<VO> list = gson.fromJson("...", new TypeToken<Collection<Integer>>(){}.getType());

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章