问题标签 [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 - Android Moshi:发展现状如何
我记得Moshi是 Gson 的创建者自己(在 Square 中)作为(Google 的) Gson for Android的升级,具有更好的性能和对 Kotlin 的更好支持。
然而,最新版本现在已经快一年了,尽管存储库中有活动,但 Gson 似乎仍然更加活跃,并且根据 AppBrain 的说法,在新项目中更多地被开发人员采用。
真实的故事是什么?任何人都可以对这两个图书馆的未来有所了解吗?
android - 将 RealmList 与 Moshi 一起使用时出错
原因:java.lang.IllegalArgumentException: Platform java.lang.Class annotated [] 需要显式注册 JsonAdapter
将 RealmList 与 Moshi 一起使用时出现上述错误。
我对此进行了一些研究,发现以下内容:
https://github.com/realm/realm-java/issues/2711
那里的解决方案说我需要使用RealmListAdapter。我已将代码复制到我的项目中。但是,我不知道如何以及在何处实现此适配器。
我该如何使用它?
kotlin - 如何从 json 构造我的 Kotlin API 类?(使用 Moshi)
我正在重构并添加到应用程序的 API 通信。我想了解我的“json 数据对象”的这种用法。直接使用属性或从 json 字符串实例化。
让 userFromParams 序列化为 JSON 不是问题。只需添加一个 toJson() 函数就可以了。
我想摆脱的是“fromJson”......因为......我想要但我不知道如何。上面的类有效(给予或接受是否允许返回可选对象等等)但它只是让我感到困扰,因为我在试图进行这个漂亮干净的重载初始化时遇到了困难。
它也不一定是数据类,但在这里看起来确实合适。
kotlin - Kotlin Moshi 适配器未调用
我正在尝试在 Kotlin 中编写一个 Moshi 适配器,它将基于整数值创建枚举,并且如果遇到不受支持的值,也会默认为特定的枚举值。
我的适配器永远不会被调用,这会导致默认枚举适配器因包含的堆栈跟踪而失败。
跟踪代码显示@ToJson
注释不知何故不存在,因此适配器没有在应该添加时添加。
声明适配器
建筑魔石
依赖项
堆栈跟踪
android - 非常不确定如何使用 moshi 反序列化 JSON 嵌套对象
使用 moshi 从这个 GET 调用反序列化有点问题
https://min-api.cryptocompare.com/data/pricemultifull?fsyms=007,1337&tsyms=EUR,USD 结果如下所示。
收到以下错误。
我使用以下数据类一个包装另一个
//外部类
//中间类
//最里面的类
所以我假设中间类没有从错误消息中实例化?嵌套类的moshi有问题吗?我通过 MoshiConverterFactory 的改造创建了我的 api 实例,如下所示。
我还尝试了代码生成注释来为每个类创建适配器,但没有任何乐趣。生成适配器。也许我有错误的想法,但我认为这些是使用注释自动生成的?(如下图)
但我想我目前对图书馆还不够熟悉。我想知道是否需要像在其他示例中看到的那样添加自定义适配器?我也试过这个,但我不知道如何从我看到的例子中创建这些适配器?如果有人对如何纠正此错误有任何想法,那就太好了!我也希望这个问题相对准确。谢谢!
android - moshi kotlin 非构造函数属性未序列化
我有一个这样定义的类:
问题是MoshihasAllergies
生成的 json 序列化中不包含它。如何做到这一点?
这是测试
android - 使用 Moshi 解析以下 JSON
我有来自 API 端点的以下 JSON 响应。我曾尝试使用 GSON 解析 JSON,但似乎存在错误。现在我想看看我是否可以使用 Moshi。如何使用 Moshi 解析以下 JSON 对象:https ://drive.google.com/open?id=1ZJoS5WetAfjMbjU-_YPbW0EPDJSmKpFk 。我一直在使用以下 POJO:对于产品类
但是遇到了以下错误:java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path or other way
我的代码如下:
kotlin - Moshi Retrofit2 Kotlin 类未找到异常
我正在尝试学习如何在 Kotlin 编程语言中实现 Retrofit2 和 Moshi。但是,我似乎在尝试编译我的代码时遇到了麻烦。
我定义了以下数据类/模型,这些数据类/模型映射到我从正在点击的 api 收到的 json 响应:
然后我有一个定义 API 行为的接口:
最后,我在 main 函数中实现了所有内容,以从 api 获取 json 数据:
从 api 返回的数据很长,但是可以在http://api-info.readthedocs.io/en/latest/door43.html找到一个示例
我的问题是我的堆栈中出现以下错误:
乍一看,我的理解是编译器认为我没有为我的 Catalogs 类定义适配器,但我认为应该使用@JsonClass(generateradapter = true)
注释来覆盖。有什么我想念的吗?为什么我的程序不能为我的 Catalogs 类生成适配器?
json - Moshi 相当于 Gson 的“serializeNulls”
我最近在一个后端替换了 Gson 的 Moshi,该后端预计将具有可空值的响应序列化为{ "value": null }
,而不是{}
.
默认情况下,Moshi 和 Gson 都不执行此操作,但 Gson 可以选择直接在构建器中执行此操作:
Gson gson = new GsonBuilder().serializeNulls().create()
.
Moshi 是否支持类似的东西?
java - 在 Moshi 中使用 Retrofit,在进行 POST、PUT 或 PATCH 时如何忽略特定的对象属性
就像标题状态一样,我正在将 Retrofit2 与 Moshi 一起使用,并且我需要获取一个具有服务器分配的 ID 的对象,但是当我想发布同一时间的新对象时,我不能在 POST 中拥有 ID 属性,否则服务器将拒绝调用,因为服务器在创建或修改对象时会在对象上生成某些字段。
因此,获取具有 ID == GOOD的对象实例
发布新的对象实例(将 ID 字段保留为空,或者如果我可以在执行 POST、PUT、PATCH 时以某种方式忽略该字段,那会更好)== BAD .
有没有人对此有解决方法或解决方案?或者也许我只是做错了什么?