質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

3979閲覧

GsonでJSONのオブジェクト型をJavaの配列型としてデシリアライズしたい

退会済みユーザー

退会済みユーザー

総合スコア0

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/05/02 05:21

編集2015/05/04 01:14

GsonでJSONのオブジェクト型をJavaの配列型としてデシリアライズしたいのですが、このようなことは出来るのでしょうか?

具体的な例として以下の様なJSON文字列があった際に、Javaの**[a, b, d, c]**のint型配列にデシリアライズします。

{ a: 10, b: 30, c: 2, d: 100 } ===== Deserialized ===== new int[]{10, 30, 100, 2}

キーの値を1つずつ読み込んで代入していく方法ではなく、出来ればJavaクラスを使った変換を行いたいです。

ご回答宜しくお願いします。

追記

JacksonではJsonCreatorアノテーションを用いたコンストラクタ(ファクトリメソッド)によって、クラスを使った変換が可能なようでした。

lang

1public class Hoge { 2 private final int[] array; 3 4 @JsonCreator 5 private Hoge(@JsonProperty("data") UserData data) { 6 array = new int[]{data.a, data.b, data.d, data.c}; 7 } 8}

lang

1public class UserData { 2 public int a; 3 public int b; 4 public int c; 5 public int d; 6}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Jackson

lang

1JsonNode hash = new ObjectMapper().readTree("{\"a\":1,\"b\":2,\"c\":3,\"d\":4}"); 2Iterator<JsonNode> elements = hash.elements(); 3while (elements.hasNext()) { 4 JsonNode node = elements.next(); 5 System.out.println(node.intValue()); 6}

投稿2015/05/02 06:06

kodai

総合スコア759

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/05/04 00:05

ご回答ありがとうございます。 この方法でもいけますが、先程調べた所、JsonCreatorアノテーションを使った方法を用いればクラスを使った変換が出来たようです… http://qiita.com/opengl-8080/items/b613b9b3bc5d796c840c#2-8
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問