问题标签 [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.

0 投票
1 回答
90 浏览

android - Android Moshi:发展现状如何

我记得Moshi是 Gson 的创建者自己(在 Square 中)作为(Google 的) Gson for Android的升级,具有更好的性能和对 Kotlin 的更好支持。

然而,最新版本现在已经快一年了,尽管存储库中有活动,但 Gson 似乎仍然更加活跃,并且根据 AppBrain 的说法,在新项目中更多地被开发人员采用。

真实的故事是什么?任何人都可以对这两个图书馆的未来有所了解吗?

0 投票
1 回答
501 浏览

android - 将 RealmList 与 Moshi 一起使用时出错

原因:java.lang.IllegalArgumentException: Platform java.lang.Class annotated [] 需要显式注册 JsonAdapter

将 RealmList 与 Moshi 一起使用时出现上述错误。

我对此进行了一些研究,发现以下内容:

https://github.com/realm/realm-java/issues/2711

那里的解决方案说我需要使用RealmListAdapter。我已将代码复制到我的项目中。但是,我不知道如何以及在何处实现此适配器。

我该如何使用它?

0 投票
1 回答
350 浏览

kotlin - 如何从 json 构造我的 Kotlin API 类?(使用 Moshi)

我正在重构并添加到应用程序的 API 通信。我想了解我的“json 数据对象”的这种用法。直接使用属性或从 json 字符串实例化。

让 userFromParams 序列化为 JSON 不是问题。只需添加一个 toJson() 函数就可以了。

我想摆脱的是“fromJson”......因为......我想要但我不知道如何。上面的类有效(给予或接受是否允许返回可选对象等等)但它只是让我感到困扰,因为我在试图进行这个漂亮干净的重载初始化时遇到了困难。

它也不一定是数据类,但在这里看起来确实合适。

0 投票
0 回答
1916 浏览

kotlin - Kotlin Moshi 适配器未调用

我正在尝试在 Kotlin 中编写一个 Moshi 适配器,它将基于整数值创建枚举,并且如果遇到不受支持的值,也会默认为特定的枚举值。

我的适配器永远不会被调用,这会导致默认枚举适配器因包含的堆栈跟踪而失败。

跟踪代码显示@ToJson注释不知何故不存在,因此适配器没有在应该添加时添加

声明适配器

建筑魔石

依赖项

堆栈跟踪

0 投票
0 回答
692 浏览

android - 非常不确定如何使用 moshi 反序列化 JSON 嵌套对象

使用 moshi 从这个 GET 调用反序列化有点问题

https://min-api.cryptocompare.com/data/pricemultifull?fsyms=007,1337&tsyms=EUR,USD 结果如下所示。

收到以下错误。

我使用以下数据类一个包装另一个

//外部类

//中间类

//最里面的类

所以我假设中间类没有从错误消息中实例化?嵌套类的moshi有问题吗?我通过 MoshiConverterFactory 的改造创建了我的 api 实例,如下所示。

我还尝试了代码生成注释来为每个类创建适配器,但没有任何乐趣。生成适配器。也许我有错误的想法,但我认为这些是使用注释自动生成的?(如下图)

但我想我目前对图书馆还不够熟悉。我想知道是否需要像在其他示例中看到的那样添加自定义适配器?我也试过这个,但我不知道如何从我看到的例子中创建这些适配器?如果有人对如何纠正此错误有任何想法,那就太好了!我也希望这个问题相对准确。谢谢!

0 投票
1 回答
311 浏览

android - moshi kotlin 非构造函数属性未序列化

我有一个这样定义的类:

问题是MoshihasAllergies生成的 json 序列化中不包含它。如何做到这一点?

这是测试

0 投票
1 回答
454 浏览

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

我的代码如下:

0 投票
1 回答
5313 浏览

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 类生成适配器?

0 投票
1 回答
886 浏览

json - Moshi 相当于 Gson 的“serializeNulls”

我最近在一个后端替换了 Gson 的 Moshi,该后端预计将具有可空值的响应序列化为{ "value": null },而不是{}.

默认情况下,Moshi 和 Gson 都不执行此操作,但 Gson 可以选择直接在构建器中执行此操作:

Gson gson = new GsonBuilder().serializeNulls().create().

Moshi 是否支持类似的东西?

0 投票
1 回答
834 浏览

java - 在 Moshi 中使用 Retrofit,在进行 POST、PUT 或 PATCH 时如何忽略特定的对象属性

就像标题状态一样,我正在将 Retrofit2 与 Moshi 一起使用,并且我需要获取一个具有服务器分配的 ID 的对象,但是当我想发布同一时间的新对象时,我不能在 POST 中拥有 ID 属性,否则服务器将拒绝调用,因为服务器在创建或修改对象时会在对象上生成某些字段。

因此,获取具有 ID == GOOD的对象实例
发布的对象实例(将 ID 字段保留为空,或者如果我可以在执行 POST、PUT、PATCH 时以某种方式忽略该字段,那会更好)== BAD .

有没有人对此有解决方法或解决方案?或者也许我只是做错了什么?