问题标签 [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 回答
3060 浏览

android - 使用 Moshi 进行改造 - 将 JsonArray 转换为字符串

下面我准备了一些我在对服务器执行查询时使用的代码。

来自服务器的响应返回包含 json 格式书籍的列表。其中一个字段params包含 json 数组中的列表。

我怎么能强迫 Moshi 将此字段视为原始字符串?

这是我的代码的解释。

这是一个伪类,我称之为 Retrofit 的实例。

这是为 Moshi 准备好字段的 Book 类。

这是用于查询书籍列表的 Retrofit 查询。

我尝试过的是我将 Book 类类型中的返回类型更改ParamsString但我正在返回关于Expected a string but was BEGIN_ARRAY at path $[0].params.

0 投票
2 回答
3190 浏览

java - Moshi 判断 JSON 是数组还是单个对象

有没有办法设置 Moshiadapter以自动创建单个ObjectList<Object>基于 JSON 响应?目前,我可以明确地做到这一点。例如,我可以收到以下响应:

或者

我想创建ObjectList<Object>不必明确指定使用哪一个。

0 投票
1 回答
8960 浏览

java - Moshi 预期 BEGIN_OBJECT 但为 BEGIN_ARRAY - 自定义转换器被忽略

我使用 Moshi 作为 Retrofit 的转换器,但是对于一个特定的请求它不起作用并且抛出异常: com.squareup.moshi.JsonDataException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at path $.results

我要解析的 JSON:

模型类:

这是改造电话:

如您所见,我期待对象列表,但 JSON 实际上本身就是一个对象,因此我准备了我的自定义转换器:

...我将它添加到我的改造中:

我的自定义转换器实际上没有被调用,所以看起来 Moshi 无法将 JSON 转换为我的VideosResponse包装类。如果我更改我的转换器以接受Map<String, Object>它,但不是用于VideosResponse. 当我将改造点更改为直接返回时,它也可以工作VideosResponse。是否可能与其他 POJO 类发生冲突(我有类似的类但有不同对象的列表)?

0 投票
0 回答
171 浏览

java - 使用 Moshi 序列化 Google 日历事件

我正在尝试序列化Event属于GenericJson. 这是我的模型课:

这就是我的使用方式ParametrizedType

但我收到此错误:

无法序列化抽象类 com.google.api.client.json.JsonFactory

知道如何序列化它吗?

0 投票
1 回答
657 浏览

android - 在 Moshi 自定义类型适配器之间传递信息

我正在使用 Moshi 从我们的服务器反序列化 json,但我遇到了一个问题,我确定有解决方案,但我看不到它。通过套接字,我们发送 json,它在顶层具有三个字段:

问题是data实际上可以是几个不同的对象,具体取决于什么data_type我不确定如何将该信息传递到Data. 我尝试了一些不同的事情,但它越来越接近我自己解析整个事情,这似乎打破了这一点。有没有办法将信息从一个适配器传递到另一个适配器?

0 投票
1 回答
472 浏览

android - 如何用 Moshi 序列化 SparseArray

如何通过 Moshi 将 SparseArray 序列化为 JSON?我真的不明白如何为此制作正确的适配器,不胜感激。

编辑:我已通过此代码使其工作

}

我像这样使用这个适配器

但我不知道这是否是正确的方式。在所有示例中,适配器都由 moshi builder 附加,但它不适用于我的适配器。这个可以吗?

0 投票
1 回答
860 浏览

arrays - 用于通过 Moshi 转换为 Json 的嵌套数组解析

我有一个这种格式的 JSON 字符串

我在想我创建一个这样的结构类

为了解析 JSON,我可以通过 Moshi 简单地通过以下代码行来完成:

但是,我还想将给定 JSON 中的类别传递给它。如何使用具有相同代码的类别?另外,我的班级结构需要进行哪些修改?

0 投票
1 回答
4076 浏览

kotlin - 具有多种格式的 Moshi LocalDateTime 适配器

默认情况下,ThreeTenABP.LocalDateTime 转换为

{"date":{"day":10,"month":4,"year":2018},"time":{"hour":3,"minute":34,"nano":115000000,"second":18}}

我可以编写一个适配器来支持 ISO 日期字符串2018-04-10T03:45:26.009

如何编写一个可以同时支持两种格式的适配器(fromJson)

  • {"date":{"day":10,"month":4,"year":2018},"time":{"hour":3,"minute":34,"nano":115000000,"second":18}}
  • 2018-04-10T03:45:26.009

除了确定使用哪种格式之外fromJson,我很好奇 Moshi 如何在内部为 LocalDateTime 执行 toJson/fromJson

0 投票
1 回答
1531 浏览

java - Moshi 有像 Gson 这样的运行时类型适配器工厂吗?

我已经使用 Gson 几个星期了,我发现了运行时类型适配器工厂类,它允许“调整运行时类型可能与其声明类型不同的值”。

这是我当前使用 Gson 的代码:

我的 JSON 中有一个“表”字段,它告诉 Gson 要使用哪个类(在本例中:“admins”-> AdminsTbl.class)。Moshi有这样的东西吗?

0 投票
2 回答
512 浏览

java - 按某种模式过滤 pojo 属性

我有一些服务器响应(很长),我已经转换为 POJO(通过使用 moshi 库)。

最终我得到了“项目”列表,每个“项目”如下所示:

我真正需要的是提取所有以 "a" 开头的属性,然后我需要将它们的值用于进一步的 req ...

有什么方法可以在没有反射的情况下实现它?(可能使用流?)

谢谢