1

Json 応答 (jsonResultAsText という名前) があります。

{
"Title": "Hi all",
"IsSecret": false,
"Agents": [
    {
        "ID": 3,
        "Name": "John F"
    },
    {
        "ID": 7,
        "Name": "Jack D"
    }
]
}

Google の gson ライブラリを使用してデシリアライズしたいと考えています。

私は次のようなクラスを持っています:

public class JsonResponse {
    public String Title;
    public boolean IsSecret;

    public List<Agent> Agents;
}

public class Agent {
    public int ID;
    public String Name;
}

JsonResponse クラスに json データを取得したい。

それは私が達成しようとするコードです:

JsonResponse response = 
                 new Gson().fromJson(jsonResultAsText, JsonResponse.class);

しかし、私の Android アプリケーションでは、その古典的なエラーが発生します: 残念ながら、< app_name > が停止しました。

gson クラスを介したシリアル化/逆シリアル化に関する例がたくさんあることは知っていますが、同様の問題/例は見つかりませんでした。

前もって感謝します。

4

1 に答える 1

1

問題を解決します。

提供する json テキスト (Agents 配列の各要素) に次の行を指定するのを忘れていました。

"Since": "2012-01-07T19:11:01.719"

そして私のエージェントクラスでは:

public class Agent {
    public int ID;
    public String Name;

    public DateTime Since;
}

確かに私はそのインポートを持っています:import org.joda.time.DateTime;

変数のデータ型を DateTime から String に変更すると、問題はなくなりました。

これでデシリアライズできます。

DateTimeから経由で送信Asp.Net Web Apiする方法を学ぶつもりですJavaJson.

コメントありがとうございます。

于 2013-05-15T23:46:58.413 に答える