问题标签 [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 - 使用 Moshi 进行改造 - 将 JsonArray 转换为字符串
下面我准备了一些我在对服务器执行查询时使用的代码。
来自服务器的响应返回包含 json 格式书籍的列表。其中一个字段params
包含 json 数组中的列表。
我怎么能强迫 Moshi 将此字段视为原始字符串?
这是我的代码的解释。
这是一个伪类,我称之为 Retrofit 的实例。
这是为 Moshi 准备好字段的 Book 类。
这是用于查询书籍列表的 Retrofit 查询。
我尝试过的是我将 Book 类类型中的返回类型更改Params
为String
但我正在返回关于Expected a string but was BEGIN_ARRAY at path $[0].params
.
java - Moshi 判断 JSON 是数组还是单个对象
有没有办法设置 Moshiadapter
以自动创建单个Object
或List<Object>
基于 JSON 响应?目前,我可以明确地做到这一点。例如,我可以收到以下响应:
或者
我想创建Object
或List<Object>
不必明确指定使用哪一个。
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 类发生冲突(我有类似的类但有不同对象的列表)?
java - 使用 Moshi 序列化 Google 日历事件
我正在尝试序列化Event
属于GenericJson
. 这是我的模型课:
这就是我的使用方式ParametrizedType
:
但我收到此错误:
无法序列化抽象类 com.google.api.client.json.JsonFactory
知道如何序列化它吗?
android - 在 Moshi 自定义类型适配器之间传递信息
我正在使用 Moshi 从我们的服务器反序列化 json,但我遇到了一个问题,我确定有解决方案,但我看不到它。通过套接字,我们发送 json,它在顶层具有三个字段:
问题是data
实际上可以是几个不同的对象,具体取决于什么data_type
我不确定如何将该信息传递到Data
. 我尝试了一些不同的事情,但它越来越接近我自己解析整个事情,这似乎打破了这一点。有没有办法将信息从一个适配器传递到另一个适配器?
android - 如何用 Moshi 序列化 SparseArray
如何通过 Moshi 将 SparseArray 序列化为 JSON?我真的不明白如何为此制作正确的适配器,不胜感激。
编辑:我已通过此代码使其工作
}
我像这样使用这个适配器
但我不知道这是否是正确的方式。在所有示例中,适配器都由 moshi builder 附加,但它不适用于我的适配器。这个可以吗?
arrays - 用于通过 Moshi 转换为 Json 的嵌套数组解析
我有一个这种格式的 JSON 字符串
我在想我创建一个这样的结构类
为了解析 JSON,我可以通过 Moshi 简单地通过以下代码行来完成:
但是,我还想将给定 JSON 中的类别传递给它。如何使用具有相同代码的类别?另外,我的班级结构需要进行哪些修改?
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
java - Moshi 有像 Gson 这样的运行时类型适配器工厂吗?
我已经使用 Gson 几个星期了,我发现了运行时类型适配器工厂类,它允许“调整运行时类型可能与其声明类型不同的值”。
这是我当前使用 Gson 的代码:
我的 JSON 中有一个“表”字段,它告诉 Gson 要使用哪个类(在本例中:“admins”-> AdminsTbl.class)。Moshi有这样的东西吗?
java - 按某种模式过滤 pojo 属性
我有一些服务器响应(很长),我已经转换为 POJO(通过使用 moshi 库)。
最终我得到了“项目”列表,每个“项目”如下所示:
我真正需要的是提取所有以 "a" 开头的属性,然后我需要将它们的值用于进一步的 req ...
有什么方法可以在没有反射的情况下实现它?(可能使用流?)
谢谢