问题标签 [moshi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Retrofit 和 Moshi:用两个数组解析 JSON 对象
在学习如何将 Retrofit 与 Moshi 一起使用以在 Android 中使用 API 的过程中,我遇到了一个我无法理解的问题。此处的目标是获取从 API 返回的简单类别数组。在本例中,当我调用 Behance API 以列出所有创意字段时,未返回数组。相反,它是一个具有两个数组的对象:
如何使用 Moshi 和 Retrofit 解析此 JSON 响应以获取两个创意字段数组?以下是我预期会起作用的设置。现在我知道 JSON 不是一个列表,而是一个具有 2 个“字段”和“流行”值的 FieldList,但我看不到如何使用 Moshi 提取数组。
创意领域模型
接口/服务
API 类
android - Kotshi 问题 - KotshiApplicationJsonAdapterFactory 的未解决参考
所以我正在尝试遵循 Kotshi 的简单 read.me并为我的项目设置它,但我似乎遇到了一些障碍。我目前在 read.me 的这一部分
但 KotshiApplicationJsonAdapterFactory 似乎给了我一个未解决的参考错误。现在这听起来像一个绝对愚蠢的问题,但 KotshiApplicationJsonAdapterFactory 应该是我设置的自定义类吗?如果是这样,我在文档中看不到任何关于它的地方。我的 gradle 添加了两个依赖项,所以我非常困惑。
android - Retrofit 和 Moshi:解析变量名对象
我正在使用 Retrofit 2 和 Moshi 从端点读取和解析 JSON。我的改造实例是这样定义的:
我正在使用 Kotlin 数据类将信息存储在模型中:
数据类:
现在,因为 JSON 是这样格式化的,所以解析 JSON 并且填充模型就好了:
这是因为对象与模型 1:1 映射。所以在上面的例子中,“Response”键映射到Data类中的“Response”变量名。
我的问题是:如果键都是可变的怎么办?您如何在 Kotlin 数据类中表示这一点?
要解析的示例 JSON 文件:
android - 具有泛型类型的 Android 和 Moshi 适配器
我正在尝试在我的 Android 项目中使用 moshi,但遇到了一些问题。
这是一个精简的示例 JSON
如您所见,它是 的列表ScheduleGroups
,在该对象中您有一个标签 和schedule_items
。ScheduleItem
这是一个包含3 个字段的数组:
type
: 字符串标签,用于标识这是哪种类型的项目item
: 可以属于Event
,Game
, 和CheckIn
schedule_item_groups
: 一个ScheduleGroup
是更多的列表 -ScheduleItems
所以第一个问题是ScheduleGroup
有一个列表,ScheduleItems
每个项目都可以有自己的ScheduleGroup
包含更多项目的列表。
第二个问题是item
字段,它需要被实例化为三个类之一:Event
、Game
、CheckIn
。
我已经为此工作了一段时间,到目前为止,我一次只能让一个工作,但不能同时工作。
以下是数据类(我只包括了其中一个Item
类):
这就是我让动态 Generic 类Item
工作的方式:
它将正确地创建正确的Item
类,但是当我尝试添加时,List<ScheduleGroup>
我得到了错误,无论我做什么,我似乎都无法让两者都工作。
编辑:
我已经更新了代码以显示我用来尝试和反序列化schedule_item_groups
which is a List<ScheduleGroup>
.
我收到一个错误:(这与我之前遇到的错误不同......)
com.squareup.moshi.JsonDataException:java.lang.IllegalArgumentException:无法将最终 java.lang.String 字段 com.roomroster.mobile_android.data.api.schedule.models.ScheduleGroup.label 设置为 com.squareup.moshi.LinkedHashTreeMap $.data[0].schedule_items[1]
moshi - 处理一个有时是布尔值有时是整数的字段
我正在尝试使用 reddit JSON API。有些帖子数据对象包含一个名为edited 的字段,如果帖子尚未编辑,则该字段可能包含布尔值 false,如果帖子已编辑,则可能包含时间戳 int。
有时是布尔值:
有时是一个整数:
尝试解析 POJO 将字段设置为 int 的 JSON 时,出现错误:JsonDataException: Expected an int but was BOOLEAN ...
我该如何使用 Moshi 处理这个问题?
java - moshi 序列化支持,如 @jsonunwrapped
我有一个这样的 POJO:
当我用内容提出休息请求时
Spring RestController 将其反序列化为注册 POJO,因为它使用 Jackson 进行反序列化。之后,当我再次使用 Moshi 适配器序列化对象时,我得到一个像这样的 json:
Moshi 是否可以像这样序列化对象:
或者是否有任何其他 JsonAdapter(杰克逊除外)可用于以这种方式序列化对象?
提前致谢
java - 杰克逊 json 中的 TypeToken.getParameterized
在 GSON 中,我接下来可以:
在莫西:
我怎么能用杰克逊 json 做到这一点?
android - Moshi 在 Kotlin 惰性属性上失败
当使用 Moshi 反序列化一个类时,它在by lazy
属性上失败并出现错误:
所以我想告诉 Moshi 忽略这个属性。忽略这一点的方法显然是使用@Transient
但只能用于字段 - 而不是属性。
那么在使用 Moshi 反序列化时如何忽略 Kotlin 惰性属性呢?
android - 如何在 Kotlin 中使用 GSON 实现多态列表反序列化?
我有一个数据馈送,它返回一个列表,该列表可能是三种类型之一(说类型 A、B 和 C)。以上所有类型共享 2 个属性,其余属性特定于该类型。我尝试使用该模式。
和
我正在使用 Retrofit 并尝试将列表反序列化为
在 Kotlin 中应该是
但是,GSON 在实例化抽象的父类时会引发反序列化错误。
有什么想法可以在 Kotlin 中实现吗?
kotlin - 为什么 Moshi 在使用 fromJson 解析 json 时返回一个可为空的对象?
可能只是我用错了,因为我是 Kotlin 和 Moshi 的新手。
data class InitialAppResult(val status: Int, val message: String, val baseprm: String)
fromJson 怎么可能是空的并且需要一个 !! 或者 ?。例如:fromJson!!.baseprm
如果解析失败并且缺少必填字段,则在我的情况下它只会引发异常。那么它如何解析“无效”的 JSON 响应而不失败,即返回 null 呢?