gpt4 book ai didi

moshi - 如何使用适用于 Android 的 Moshi JSON 库序列化 ArrayList

转载 作者:行者123 更新时间:2023-12-03 15:12:13 26 4
gpt4 key购买 nike

我正在尝试使用 Android 的 Moshi 库将 Java 对象转换为 JSON。该对象包含一个类型的属性

ArrayList < float[]>



我正在注册以下适配器来转换对象。
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: Platform java.util.ArrayList annotated [] requires explicit JsonAdapter to be registered at com.squareup.moshi.ClassJsonAdapter$1.create(ClassJsonAdapter.java:50) at com.squareup.moshi.Moshi.adapter(Moshi.java:99) at com.squareup.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) at com.squareup.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) at com.squareup.moshi.Moshi.adapter(Moshi.java:57) at com.squareup.moshi.CollectionJsonAdapter.newArrayListAdapter(CollectionJsonAdapter.java:51) at com.squareup.moshi.CollectionJsonAdapter$1.create(CollectionJsonAdapter.java:35) at com.squareup.moshi.Moshi.adapter(Moshi.java:99) at com.squareup.moshi.Moshi.adapter(Moshi.java:57)



我认为我的类型定义是错误的,但我似乎无法找到正确的值

最佳答案

正如错误所说,ArrayList 是一种平台类型。
您可以使用 List(或专门为 ArrayList 制作自定义 JsonAdapter)。

另外,这里有一个问题:Type type = Types.newParameterizedType(List.class, HistoryPath.class, ArrayList.class, Float[].class, Float.class);
这种类型是List<HistoryPath, ArrayList, Float[], Float>这是无效的,它不会为 JsonAdapter<Drawing> adapter = moshi.adapter(type); 产生正确的结果.

您可能只想要 JsonAdapter<Drawing> adapter = moshi.adapter(Drawing.class); .

关于moshi - 如何使用适用于 Android 的 Moshi JSON 库序列化 ArrayList<float[]>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43853112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com