JSONオブジェクト(APIに由来)をそれぞれのJavaオブジェクトにデシリアライズしようとしています。私はgsonライブラリ(Android用)を使用しています。問題は、私が数日間試してきたことであり、いくつかのオプションをテストした結果、運が良かったので、これについて少し助けていただければ幸いです。Gsonで複雑なJSON(複数のネストされた要素)を逆シリアル化する
* JSONが取得されました。 JSONsの全ての構造が類似して、私はそれを利用し、JSONからマップするためのオブジェクトを拡張したい受信ので
{
"status_code": 200,
"status_message": "Here the status message",
"result": {
"success": true,
"internalStatusCall": 1,
"response":
/* Can be a JSON object or a JSON array of objects */
}
}
:私はAPIから受け取ったすべてのJSONsは、次のような構造に従ってください。
私のようなものに思うだろう:
このオブジェクトからの拡張public class TABaseObject {
@SerializedName("status_code")
protected int status_code;
@SerializedName("status_message")
protected String status_message;
protected String type;
public TABaseObject(int status_code, String status_message, String type) {
this.status_code = status_code;
this.status_message = status_message;
this.type = type;
}
}
、内部オブジェクトは、次のようになります。
public class TAResultObject extends TABaseObject{
@SerializedName("exito")
protected boolean exito;
@SerializedName("codigoEstado")
protected int codigoEstado;
public TAResultObject(int status_code, String status_message, boolean exito, int codigoEstado) {
super(status_code, status_message, "resultado");
this.exito = exito;
this.codigoEstado = codigoEstado;
}
@Override
public String toString() {
return super.toString() + " ////// " + "TAResultObject{" +
"exito=" + exito +
", codigoEstado=" + codigoEstado +
'}';
}
と、この他のオブジェクトから、私は特派オブジェクトにTAResultObjectを延長します。
私はいくつかのデシリアライズ手法(TypeAdapterFactory、RuntimeTypeAdapterFactoryなど)を運がないものとして試しました。
上記のJSONを逆シリアル化できる方法はありますか。私は本当にこの1つの助けを感謝します。
それが提供JSONと頭の中でマッピングをマップすることは難しいです。あなたはおそらく追加する何かを逃しましたか? –
@breo私の答えをチェックしましたか? – Krish