Android
モシ
サーチ…
前書き
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