1

以下のJSONをGsonで解析するにはどうすればよいですか?

今私は使用します:

private AttachChildDataModel parseSuccess(String content){
    Gson gson = new Gson();
    return gson.fromJson(content, AttachChildDataModel.class);
}

AttachChildDataModelこれらのメンバー変数はどこにありますか:

private Integer adultId;
private Integer childId;
private PlatformEnum platform;
private String regId;
private Date loginDate;
private Date logoutDate;
private ClientApp clientApp;

解析しようとしているJson文字列は次のとおりです。

{"log":  
  {
    "childId":2,
    "adultId":1,
    "logoutDate":null,
    "platform":"IPHONE",
    "regId":null,
    "loginDate":1325419200000,
    "clientApp":"CHILD_APP"
  }
}

オブジェクトをSpringModelViewに配置するときに、名前で追加しlogます。問題なのは、Gsonで解析しようとしたときです。今のところ、「log」プレフィックスと「}」ポストフィックスを手動で削除してString#substringいますが、もっと良い解決策があると思います。

4

1 に答える 1

0

問題を解決するには、次のような「foo」クラスを作成します。

package stackoverflow.questions.q15614008;

public class Foo {

   public AttachChildDataModel log;

}

Gsonで解析するための基本クラスとして使用します。

package stackoverflow.questions.q15614008;

import com.google.gson.*;

public class Q15614008 {

  public static void main(String[] arg) {

    String testString = "{\"log\": "
        + "  {"
        + "\"childId\":2," + "\"adultId\":1,"
        + "\"logoutDate\":null,"
        + "\"platform\":\"IPHONE\","
        + "\"regId\":null,"
        + "\"loginDate\":1325419200000,"
        + "\"clientApp\":\"CHILD_APP\"}"
        + "}";

    Gson gson = new Gson();
    Foo foo = gson.fromJson(
        testString, Foo.class);
    System.out.println("Result: " + foo.log.toString());
  }

}

次に、クラスのlogメンバー変数のみを使用します。Foo

于 2013-08-30T20:22:13.303 に答える