我想使用Android的Moshi庫將Java對象轉換爲JSON。該對象包含類型如何使用Moshi JSON庫對Android ArrayList <float[]>進行序列化
的ArrayList的屬性<浮子[]>
,我註冊以下適配器將對象轉換。
Type type = Types.newParameterizedType
(List.class, HistoryPath.class, ArrayList.class, Float[].class, Float.class);
JsonAdapter<Drawing> adapter = moshi.adapter(type);
String json = adapter.toJson(drawing);
的 「的toJSON」 方法失敗有以下例外:
java.lang.IllegalArgumentException異常:平臺 java.util.ArrayList中註釋[]要求顯式 JsonAdapter在 登記 com.squareup.moshi.ClassJsonAdapter $ 1.create(ClassJsonAdapter.java:50) at com.squareup.moshi.Moshi.adapter(Moshi.java:99) at com.squar eup.moshi.ClassJsonAdapter $ 1.createFieldBindings(ClassJsonAdapter.java:90) at com.squareup.moshi.ClassJsonAdapter $ 1.create(ClassJsonAdapter.java:74) at com.squareup.moshi.Moshi.adapter(Moshi.java :99) 在 com.squareup.moshi.ClassJsonAdapter $ 1.createFieldBindings(ClassJsonAdapter.java:90) 在 com.squareup.moshi.ClassJsonAdapter $ 1,創建(ClassJsonAdapter.java:74) 在com.squareup.moshi .Moshi.adapter(Moshi.java:99) at com.squareup.moshi.Moshi.adapter(Moshi.java:57) at com.squareup.moshi.Collectio nJsonAdapter.newArrayListAdapter(CollectionJsonAdapter.java:51) 在 com.squareup.moshi.CollectionJsonAdapter $ 1,創建(CollectionJsonAdapter.java:35) 在com.squareup.moshi.Moshi.adapter(Moshi.java:99) 在com.squareup.moshi.Moshi.adapter(Moshi.java:57)
我想我喜歡的類型定義是錯誤的,但我似乎無法找到合適的值
獲取根據您的建議不同的錯誤: 的ArrayList註釋[]要求註冊 –
AndroidGuy
@androidguy的ArrayList是一個平臺型的明確JsonAdapter。你需要爲它註冊一個JsonAdapter,或者使用List。 –