3
我正在使用Gson從給定的API使用以下代碼反序列化JSON字符串。如何使用Gson反序列化具有可選字段的json
Gson gson = new Gson();
Map<String, CustomDto> test = gson.fromJson(result, new TypeToken<Map<String, CustomDto>>() {}.getType());
CustomDto
的是從原語(INT,長,布爾值)和另一對象構造的對象。我碰到的問題是這個對象是可選的。有時候會傳播,有時它不會。如果一個字段的JSON字符串相關的設置方法不應該叫(如在Jackson)的失蹤我所期待的,它應該只是工作不幸的是,情況並非如此,我碰到一個例外:
Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 207 column 23
如果我從CustomDto
中刪除該字段,它可以正常工作,但是如果它將被傳輸則會出現問題。請問有沒有在實體類中標記字段的註釋,或者有人可以給我一些建議如何處理?
謝謝大家。
請發表您試圖反序列化JSON的和實際的'CustomDto'類或適當的類,這將有助於我們重現你的錯誤。 –