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

JavaでGsonを使用してカスタムJsonAdapterを実装する方法は?


@JsonAdapte rアノテーションは、Gsonを指定するためにフィールドまたはクラスレベルで使用できます。 TypeAdapter クラスを使用して、JavaオブジェクトをJSONとの間で変換できます。デフォルトでは、Gsonライブラリは組み込みの型アダプターを使用してアプリケーションクラスをJSONに変換しますが、カスタムの型アダプターを提供することでオーバーライドできます。

構文

@Retention(value=RUNTIME)
@Target(value={TYPE,FIELD})
public @interface JsonAdapter
import java.io.IOException;
import com.google.gson.Gson;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
public class JsonAdapterTest {
   public static void main(String[] args) {
      Gson gson = new Gson();
      System.out.println(gson.toJson(new Customer()));
   }
}
// Customer class
class Customer {
   @JsonAdapter(CustomJsonAdapter.class)
   Integer customerId = 101;
}
// CustomJsonAdapter class
class CustomJsonAdapter extends TypeAdapter<Integer> {
   @Override
   public Integer read(JsonReader jreader) throws IOException {
      return null;
   }
   @Override
   public void write(JsonWriter jwriter, Integer customerId) throws IOException {
      jwriter.beginObject();
      jwriter.name("customerId");
      jwriter.value(String.valueOf(customerId));
      jwriter.endObject();
   }
}

出力

{"customerId":{"customerId":"101"}}

  1. JavaでGregorianCalendarクラスを使用して日付を印刷するにはどうすればよいですか?

    GregorianCalendar クラスは標準カレンダーをサポートします。ユリウス暦とグレゴリオ暦をサポートします。コンストラクターの1つを使用してGregorianCalendarのオブジェクトを作成できます。以下は、このクラスを使用して日付を印刷する方法を示すさまざまな例です- 例 次の例では、 GregorianCalanderを作成します 年、月、日付の値をパラメーターとしてコンストラクターに渡し、日付を出力します- import java.util.Calendar; import java.util.GregorianCalendar; public class Test {

  2. Java 9でJavaFXを使用してJShellを実装するにはどうすればよいですか?

    JShell サンプル式を実装するために使用されるインタラクティブなツールです。 JavaFXを使用してプログラムでJShellを実装できます アプリケーションの場合、以下にリストされているJavaプログラムにいくつかのパッケージをインポートする必要があります import jdk.jshell.JShell; import jdk.jshell.SnippetEvent; import jdk.jshell.VarSnippet; 以下の例では、サンプルのJavaFXアプリケーションを実装しました。 テキストフィールドにさまざまな値を入力します 「評価」を押します 「」ボタン。対応する