使用 jackson 解析 json 示例


首先需要下载3个包,下载地址在Github FasterXML,这三个核心模块分别是:
Streaming ("jackson-core") defines low-level streaming API, and includes JSON-specific implementations
Annotations ("jackson-annotations") contains standard Jackson annotations
Databind ("jackson-databind") implements data-binding (and object serialization) support on streaming package;
                                         it depends both on streaming and annotations packages。

json文件:
<span style="font-family:SimHei;font-size:18px;">{
     "name":" vonzhou",
     "age":123,
     "isMan":true
}</span>


POJO类:
<span style="font-family:SimHei;font-size:18px;">package jackson.test;

import java.util.HashMap;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonProperty;

public class ExamplePOJO {
      @JsonProperty( "name")
      private String name;
     
      @JsonProperty( "age")
      private Integer age;
     
      @JsonProperty( "isMan")
      private Boolean isMan;
     
      private Map<String,Object> additionalProperties = new
                HashMap<String, Object>();
     
      @JsonProperty( "name")
      public String getName() {
            return name;
     }
      @JsonProperty( "name")
      public void setName(String name) {
            this. name = name;
     }
      @JsonProperty( "age")
      public Integer getAge() {
            return age;
     }
      @JsonProperty( "age")
      public void setAge(Integer age) {
            this. age = age;
     }
      @JsonProperty( "isMan")
      public Boolean getIsMan() {
            return isMan;
     }
      @JsonProperty( "isMan")
      public void setIsMan(Boolean isMan) {
            this. isMan = isMan;
     }

      public Map<String, Object> getAdditionalProperties() {
            return additionalProperties;
     }

      public void setAdditionalProperties(String name, Object obj) {
            this. additionalProperties.put(name, obj);
     }
     
      @Override
      public String toString() {
            return "ExamplePOJO{\n" +
                      "name :'" + name + "',\n" +
                      "age : " + age + ",\n" +
                      "isMan :" + isMan + ",\n" +
                      "additionalProperties : " + additionalProperties +
                      "\n}";
     }
     

}

</span>


解析json文件的类:
<span style="font-family:SimHei;font-size:18px;">package jackson.test;

import java.io.File;
import java.io.IOException;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Driver {
     public static void main(String[] args) {
          ObjectMapper mapper = new ObjectMapper();
          try {
               ExamplePOJO bean = mapper.readValue(new File("test.json"), 
                                                                 ExamplePOJO.class);
               System.out.println("name : " + bean.getName());
               System.out.println("age : " + bean.getAge() );
               System.out.println("isMan : " + bean.getIsMan() );
               System.out.println("===================");
               System.out.println(bean.toString());
          } catch (JsonParseException e) {
               e.printStackTrace();
          }catch (JsonMappingException e){
               e.printStackTrace();
          }catch (IOException e){
               e.printStackTrace();
          }             
     }
}</span>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值