Gson を使用して JSON データを POJO に変換しているときに、このエラーが発生します。
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: BEGIN_ARRAY が必要でしたが、1 行目の列 119 で STRING でした
私のJSONは:
{
"success":true,
"result":[
{
"htmlId":"edit_text_1",
"value":"3",
"contentType":"Snippet"
},
{
"htmlId":"edit_text_2",
"value":[
{
"type":"HTML",
"value":"<ul>\n<li>This is a text from the static editable content.</li>\n</ul>"
},
{
"type":"Text",
"value":"- This is a text from the static editable content."
} ],
"contentType":"Text"
}
]
}
結果ごとに値の型が異なる場合があります。文字列値または配列の場合もあります。
結果の私のポジョは次のとおりです。
private String htmlId;
private Object value = new ArrayList<Object>();
private String contentType;
public String getHtmlId() {
return htmlId;
}
public void setHtmlId(String htmlId) {
this.htmlId = htmlId;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
if(value instanceof String)
this.value = (List<String>)value;
else if(value instanceof ArrayList)
this.value = (ArrayList<MarketoTypeValue>)value;
}
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
結果にスニペット タイプがない場合、私のコードは正常に動作します。タイプキャストで試してみましたが、それも役に立ちませんでした。
そのようなシナリオを処理する最善の方法は何ですか?