反序列化JSON

本人编程生涯刚刚起步,以下是个人理解,如果有些不对的地方,请各位在评论区指出,如果有更详细的博客也可以推荐给我。

首先要根据JSON创建一个实体类,并且要实现Serializable接口,再创建一个JacksonUtils工具类

 1 import java.io.Serializable;
 2  
 3  public class Opst implements Serializable{
 4     
 5   
 6      private long dataCount;
 7      private long mediaCount;
 8   
 9      public long getDataCount() {
10          return dataCount;
11      }
12  
13      public void setDataCount(long dataCount) {
14          this.dataCount = dataCount;
15      }
16 
17     
18      public long getMediaCount() {
19          return mediaCount;
20      }
21  
22      public void setMediaCount(long mediaCount) {
23          this.mediaCount = mediaCount;
24      }
25  
26  }
 1 import com.fasterxml.jackson.databind.ObjectMapper;
 2 import com.fasterxml.jackson.databind.ObjectWriter;
 3 
 4 import java.io.File;
 5 import java.io.IOException;
 6 import java.io.Writer;
 7 
 8 public final class JacksonUtils {
 9 
10     private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
11 public static <T> T fromJsonString(String json, Class<T> clazz) {
12         if (json == null)
13             return null;
14         try {
15             return OBJECT_MAPPER.readValue(json, clazz);
16         } catch (Exception e) {
17             throw new RuntimeException("Unable to parse Json String.", e);
18         }
19         return null;
20     }
21 }

然后就可以反序列化了,以下是测试代码

import com.mhl.common.util.JacksonUtils;
1  public static void main(String[] args) {
2          String a="{\"dataCount\":29833,\"mediaCount\":4123}";
3          Opst opst = JacksonUtils.fromJsonString(a, Opst.class);
4          System.out.println(opst.getDataCount());
5          System.out.println(opst.getMediaCount());
6      }

输出结果

29833

4123

猜你喜欢

转载自www.cnblogs.com/mahailun/p/mhl-20190909-JSON-Fan.html