私は別のプロジェクトでこれを実行しようとしました。これまでに見たチュートリアルによると、私は正しい方向に進んでいることはわかっていますが、この解析を正しく行うことができません。
(非常に単純化された)JSON出力:
{
"data":{
"info":{
"username": "something"
"email" : "something"
}
..
..
}
次のクラスを使用して「username」と「email」を取得しようとしています。
class ProfileResponse {
static Data data;
public static Data getData() {
return data;
}
public static void setData(Data data) {
ProfileResponse.data = data;
}
}
Class Data {
@SerializedName("info")
static Info info;
public static Info getInfo() {
return info;
}
public static void setInfo(Info info) {
Data.info = info;
}
}
class Info {
@SerializedName("username")
static String username;
@SerializedName("email")
static String email;
public static String getUsername() {
return username;
}
public static String getEmail() {
return email;
}
}
そして、次のようにJSON文字列を逆シリアル化します(文字列であることが問題になる可能性がありますか?)。
Gson gson = new Gson();
gson.fromJson(response, ProfileResponse.class);
if (Info.getUsername() == null
|| Info.getUsername().isEmpty()) {
System.out.println("NO USERNAME");
} else {
System.out.println("USERNAME: "
+ Info.getUsername());
}
これは、実行されるたびに「NOUSERNAME」を出力します。