GSRをRetrofitで使用しています。空の配列フィールドの逆シリアル化を無効にしたいAndroid GSONは空の配列をデシリアライズします
DTO:
public class Entity implements Serializable {
@SerializedName("body")
@Expose
private BodyObject body;
私はrest API
で動作します。体のフィールドが空の場合、それは空のArray
を送信:
{
"body": []
}
例外:
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 443 path $.body
体が満たされている場合、彼らは正しいオブジェクトを送信します。
{
"body": {
"und": [
{
"value": "Test ....",
"summary": "",
"format": "filtered_html",
"safe_value": "<p>Test ....</p>\n",
"safe_summary": ""
}
]
}
}
-
Gson gson = new GsonBuilder()
.setLenient()
.create();
どのように私は、これらの空の配列のdeserializationsを削除、または無効にできますか?
あなたとあなたの質問の最後にビルドされた 'GSON'オブジェクトによって' JSON'のシリアル化が行われますか?あなたは 'BodyObject'を添付できますか? – pirho