私はRetrofitを使用してAPI呼び出しを行っています。トップレベルオブジェクトは、要求のクエリパラメータに応じて名前が付けられます。例えば、このような要求は:相続人最上位レベルのjsonオブジェクトの変更名
{"69":{
"mix_id":"69",
"mix_title":"A Title",
"mix_file":"https:example.com/mp3",
"mix_genres":"House,Pop",
"mix_dj_id":"57",
"number_votes":"390",
"station":"1"
}
}
もちょっとフォーマットを示していることscreenie:基本的 http://prnt.sc/axltcd
を、依存
api.somewebsite.com/1.0/mix_info?mix_id=69
は、このような応答を返しますURLに渡された番号mix_id=
は、応答で返される最上位Jsonオブジェクトの名前になります。
私は一緒にちょっと働く何かハックすることができました:私は、トップレベルのオブジェクトであるメンバ変数を持つモデル応答のクラスを持っている、と私は明示的に改修の@SerializedName(「69」)を使用
を名前を設定します。これは、もちろん、IDが69の要求に対してのみ機能します。そうでない場合、応答はnullオブジェクトを返します。それはこのようになります
:とにかく
public class Response {
@SerializedName("69")
private _69 _69;
}
、私は適切にこれらの奇妙なフォーマットされた応答を処理する方法を探しています。これはどのようにして行われますか?
HashMapをシリアル化するとどうなりますか? – plalx
..それについては – Orbit
よく 'hashMap.put( 'yourKey'、yourData);シリアライズ(hashMap) ' – plalx