Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのJacksonを使用してJSONのフィールド名を変更するにはどうすればよいですか?


ジャクソンアノテーション@JsonProperty シリアル化中にプロパティまたはメソッドで使用されます または逆シリアル化 JSON 。オプションの「名前」が必要です ’パラメータ これは、プロパティ名が「キー」と異なる場合に役立ちます ’名前 JSON 。デフォルトでは、キー名がプロパティ名と一致する場合、値はプロパティ値にマップされます。

以下の例では、フィールド名を変更できます @JsonPropertyアノテーションを使用したJSONで

import java.io.IOException;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.annotation.JsonProperty;
public class JsonPropertyAnnotationTest {
   public static void main(String[] args) throws IOException {
      ObjectMapper mapper = new ObjectMapper();
      mapper.enable(SerializationFeature.INDENT_OUTPUT);
      User user = new User("Sai", "Adithya", "9959984000", "0402358700");
      String data = mapper.writeValueAsString(user);
      System.out.println(data);
   }
}
// User class
class User {
   @JsonProperty("first-name")
   public String firstName;
   @JsonProperty("last-name")
   public String lastName;
   @JsonProperty("mobile-phone")
   public String mobilePhone;
   @JsonProperty("home_phone")
   public String workPhone;
   public User(String firstName, String lastName, String mobilePhone, String workPhone) {
      super();
      this.firstName = firstName;
      this.lastName = lastName;
      this.mobilePhone = mobilePhone;
      this.workPhone = workPhone;
   }
}
出力
{
   "first-name" : "Sai",
   "last-name" : "Adithya",
   "mobile-phone" : "9959984000",
   "home_phone" : "0402358700"
}

  1. JavaでJacksonを使用してJSONオブジェクトを列挙型に変換するにはどうすればよいですか?

    JSONObject 文字列からのテキストを解析してマップを生成できます 一種のオブジェクト。 列挙型 定数のコレクションを定義するために使用できます 、ある種の数値データまたはテキストデータを表さない事前定義された値のリストが必要な場合は、列挙型を使用できます。 readValue()を使用して、JSONオブジェクトを列挙型に変換できます ObjectMapperのメソッド クラス。 以下の例では、Jacksonライブラリを使用してJSONオブジェクトをJava列挙型に変換/逆シリアル化できます。 例 import com.fasterxml.jackson.databind.*; p

  2. Javaで既存のJSONファイルにJSON文字列を追加するにはどうすればよいですか?

    Gson はJava用のjsonライブラリであり、JSONの生成に使用できます。最初のステップでは、JSONファイルを読み取ってJavaオブジェクトに解析し、型キャストする必要があります。 JSonObjectへのJavaオブジェクト JsonArrayに解析します 。次に、このJSON配列を繰り返して、 JSONElementを出力します。 。 JsonWriterを作成できます JSONでエンコードされた値を一度に1つのトークンでストリームに書き込むクラス。最後に、新しいJSON文字列を既存のjsonファイルに書き込むことができます。 例 import java.io.*; im