サーチ…


前書き

MoshiはAndroidとJava用の最新のJSONライブラリです。 JSONをJavaオブジェクトに、JavaをJSONに簡単に解析できます。

備考

忘れずに、常にREADMEを読んでください!

JSONをJavaに変換する

String json = ...;

Moshi moshi = new Moshi.Builder().build();
JsonAdapter<BlackjackHand> jsonAdapter = moshi.adapter(BlackjackHand.class);

BlackjackHand blackjackHand = jsonAdapter.fromJson(json);
System.out.println(blackjackHand);

JavaオブジェクトをJSONとしてシリアル化する

BlackjackHand blackjackHand = new BlackjackHand(
    new Card('6', SPADES),
    Arrays.asList(new Card('4', CLUBS), new Card('A', HEARTS)));

Moshi moshi = new Moshi.Builder().build();
JsonAdapter<BlackjackHand> jsonAdapter = moshi.adapter(BlackjackHand.class);

String json = jsonAdapter.toJson(blackjackHand);
System.out.println(json);

内蔵型アダプタ

Moshiには、Javaのコアデータ型を読み書きするための組み込みサポートがあります。

  • プリミティブ(int、float、char ...)とボックス化された対応(Integer、Float、Character ...)。
  • 配列
  • コレクション
  • リスト
  • セット
  • マップ文字列列挙型

これは、モデルクラスをフィールドごとに書き出すことによってサポートします。上記の例では、Moshiは次のクラスを使用します。

class BlackjackHand {
  public final Card hidden_card;
  public final List<Card> visible_cards;
  ...
}

class Card {
  public final char rank;
  public final Suit suit;
  ...
}

enum Suit {
  CLUBS, DIAMONDS, HEARTS, SPADES;
}
to read and write this JSON:

{
  "hidden_card": {
    "rank": "6",
    "suit": "SPADES"
  },
  "visible_cards": [
    {
      "rank": "4",
      "suit": "CLUBS"
    },
    {
      "rank": "A",
      "suit": "HEARTS"
    }
  ]
}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow