2017-02-20 8 views
0

に文字列として子をデシリアライズ:Gsonは、私は、このJSONレスポンスをデシリアライズしようとしている親

{ 
    "_index":"miracle", 
    "_type":"user", 
    "_id":"AVpbIYg7NtDacQRf2Gz5", 
    "_score":1.0, 
    "_source": 
    { 
     "username":"andrei23", 
     "password":"andrei_23" 
    } 
} 

を私はこのような何かを試してみましたが、それは動作しません:

public class HitDTO { 

    @SerializedName("_id") 
    private String id; 

    @SerializedName("_source") 
    private String source; 
} 

がいくつかあります私が使うことができるアノテーションの種類か、それとも何か他のものがありますか?

答えて

0

まず、フィールドのセッターとゲッターを作成する必要があります。

JSONオブジェクトをカプセル化します。だから、以下のようにクラスを編集します。

public class HitSourceDTO { 

    @SerializedName("username") 
    private String username; 

    @SerializedName("password") 
    private String password; 

    // getters and setters 
} 

public class HitDTO { 

    @SerializedName("_id") 
    private String id; 

    @SerializedName("_source") 
    private HitSourceDTO source; 

    // getters and setters 
} 

を最後に、_source場のご希望の形式を返すように関数を追加:

function String getStringOfSource() 
{ 
    return "username=" + source.username + " password=" + source.password; 
} 

はホープそれはあなたに役立ちます!

編集:私はこの目的のためにあらゆる種類の注釈を検索しましたが、注釈があなたが望むものを正確に行うことができませんでした。

関連する問題