JavaはJSON文字列とオブジェクトの変換を実装します

JavaはJSON文字列とオブジェクトの変換を実装します

表示する前のヒント:

この記事で使用されているIDEAバージョンは究極の2019.1であり、JDKバージョンは1.8.0_141です。

1. Jackon ObjectMapper

参照関連のjarパッケージ

	<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.11.2</version>
    </dependency>

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

エンティティPerson.java

package testJsonToEntity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

@JsonPropertyOrder(value = {
    
    "ID","name","age"})
@JsonIgnoreProperties(ignoreUnknown = true)
public class Person {
    
    

    @JsonProperty("ID")
    private String id;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String name;

    private int age;

    public String getId() {
    
    
        return id;
    }

    public void setId(String id) {
    
    
        this.id = id;
    }

    public String getName() {
    
    
        return name;
    }

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

    public int getAge() {
    
    
        return age;
    }

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

    @Override
    public String toString() {
    
    
        return "Person{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

  1. @JsonPropertyOrderこの注釈は、プロパティを並べ替えるために使用されます。

  2. @JsonIgnoreProperties(ignoreUnknown = true)、クラスにこの注釈を書き込んだ後、クラスに存在しないフィールドは無視されます。

  3. @JsonPropertyこの注釈はプロパティで使用され、その役割は、trueNameプロパティをnameにシリアル化するなど、プロパティの名前を別の名前にシリアル化することです。

  4. @JsonInclude(Include.NON_NULL)の役割:jacksonエンティティがjsonをNULLに変換するフィールドは、シリアル化に参加しません(つまり、表示されません)。

テストクラスTest.java

package testJsonToEntity;

import com.fasterxml.jackson.databind.ObjectMapper;

public class Test {
    
    

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws Exception {
    
    

        Person p = new Person();
        p.setId("1111");
        p.setAge(18);
        String jsonStr = mapper.writeValueAsString(p);
        System.out.println(jsonStr);

        String json = "{\"Id\":\"1111\",\"age\":18,\"sex\":\"male\"}";
        Person p1 = mapper.readValue(json, Person.class);
        System.out.println(p1.toString());
    }
}

結果は

ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_43611145/article/details/108624521