Jackson简单应用

Jackson官网 http://wiki.fasterxml.com/
Jackson下载 https://github.com/FasterXML/jackson-annotations/wiki

本文代码下载 https://pan.baidu.com/s/1dEHqPlZ

本文介绍Jackson简单应用,希望能对大家有用,操作流程如下:

第一步:创建Maven项目,配置pom.xml。

<dependencies>
      <!-- Jackson包 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.1</version>
    </dependency>
  </dependencies>

第二步:创建测试文件,功能测试。

Users对象

package com.learn.jackson;

public class Users {
    private String uuid;
    private String name;
    private Integer age;
    private Integer sex;
    private String remark;

    public Users() {
    }

    public Users(String uuid,String name,Integer age, Integer sex, String remark){
        this.uuid = uuid;
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.remark = remark;
    }

    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getMassages(){
        return uuid+"--"+name+"--"+sex+"--"+age+"--"+remark;
    }
}

测试文件

package com.learn.jackson;

import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import junit.framework.TestCase;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

public class AppTest extends TestCase {
    public static void main(String[] args) throws IOException {
        //测试数据
        Users user = new Users("aaa", "aaa", 23, 1, "这是aaa");
        List<Users> list = new ArrayList<Users>();
        list.add(new Users("bbb", "bbb", 45, 1, "这是bbb"));
        list.add(new Users("ccc", "ccc", 23, 1, "这是ccc"));
        //Jackson对象
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

        System.out.println("********JSON -> 对象************");
        String jsonUser = mapper.writeValueAsString(user);
        String jsonList = mapper.writeValueAsString(list);
        System.out.println(jsonUser);
        System.out.println(jsonList);

        System.out.println("********对象 -> JSON************");
        Users us = mapper.readValue(jsonUser, Users.class);
        System.out.println(us.getMassages());

        List<LinkedHashMap> lis = mapper.readValue(jsonList, List.class);
        for (LinkedHashMap map : lis) {
            String json = mapper.writeValueAsString(map);
            Users uu1 = mapper.readValue(json, Users.class);
            System.out.println(uu1.getMassages());
        }
    }
}

异常处理:

JSON转实体抛出异常com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException,是由于实体中缺少JSON的某个字段引起。可通过如下配置解决:

1.通过mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)配置实现。

2.通过@JsonIgnoreProperties(ignoreUnknown = true)注解实现

时间: 2024-11-10 02:53:26

Jackson简单应用的相关文章

jackson简单使用案例

准备:下载jackson的jar包,不要使用2.8版本,类加载器错误,原因未知 entity: getter和setter省略 public class Person { private int id; private String name; @JsonProperty(value="ismale") private boolean gender; @JsonFormat(pattern="yyyy-MM-dd") //输入的格式必须满足,不然抛异常:json串也

jackson简单使用,对象转json,json转对象,json转list

添加jackson依赖: // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.8.2' // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-da

jackson 进行json与java对象转换 之四

jackson简单使用,对象转json,json转对象,json转list POJO序列化为json字符串: 准备一个POJO: @JsonIgnoreProperties(ignoreUnknown = true) class User implements Serializable { private static final long serialVersionUID = -5952920972581467417L; private String name; public User() {

JSON的学习与使用

.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > .katex-html { display: block; } .katex-display > .katex > .katex-html > .tag { position: absolute; right: 0px; } .katex { font: 1.21em / 1.2 KaTeX

Java 之利用OkHttpClient进行简单的http请求,利用Jackson框架把json转化为java对象的实现

实现的业务逻辑是这样的:通过http请求,返回一个json格式的数据,然后将json数据转化为java对象返回给调用方.Http采用OkHttp库,json转化采用jackson库.一.简介1)okhttpclientOkHttpClient官网: http://square.github.io/okhttp/OkHttp GitHub地址:https://github.com/square/okhttp最常用的是两个http请求是get和post,我下面的代码就只用到这两个请求.Maven依赖

简单的使用jackson的annotation

@JsonAutoDetect (class) 这是作用于类的annotation,主要用于指明该类使用annotation,并且可以自动侦测getter,setter,构造方法,以便生成json对象 @JsonIgnore (method/field):作用于方法或字段,用来表明,当生成json的时候忽略有该annotation的方法或字段 如题,以一个用户对象为例子: @Entity @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @J

Json解析工具Jackson(简单应用)

概述    Jackson库(http://jackson.codehaus.org),是基于Java语言的开源json格式解析工具,整个库(使用最新的2.2版本)包含3个jar包:    jackson-core.jar--核心包(必须),提供基于"流模式"解析的API.    jackson-databind--数据绑定包(可选),提供基于"对象绑定"和"树模型"相关API.    jackson-annotations--注解包(可选),提

jackson 复杂对象集合 的几种简单转换

package com; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.List; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.d

jackson的简单实用实例(json)

一个json格式的字符串比如: {"status":10001,"code":"HDkGzI","pubkey":"DBCEEECFD3F6808C85254B1","servertime":1475741518} ,在java中对应的字符串为: "{\"status\":10001,\"code\":\"HDkGzI\&quo