当前位置: 首页 > 知识库问答 >
问题:

如何解决延迟响应的JSON改型错误

袁和通
2023-03-14
com.squareup.moshi.JsonDataException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at path $*

我看了一下这个答案,但我不知道如何使它适应我的代码:reverfit应该是BEGIN_OBJECT,但应该是BEGIN_ARRAY

这是我的接口

interface LocationService {
    @GET("locations?countryid=fr")
    fun getLocationList() : Deferred<Response<LocationResponse>>
}

定位响应

data class LocationResponse (val results : List<Location>)
data class Location (
    @field:Json(name = "id") val id : String,
    @field:Json(name = "category") val category : String,
    @field:Json(name = "label") val label : String,
    @field:Json(name = "value") val value : String
)
[
  {
    "id":"city_39522",
    "category":"Villes",
    "label":"Parisot (81310)",
    "value":null
 },
 {
   "id":"city_36661",
   "category":"Villes",
   "label":"Paris 9ème (75009)",
   "value":null
 },
 {
   "id":"city_39743",
   "category":"Villes",
   "label":"Parisot (82160)",
   "value":null
 }
]

共有1个答案

傅阳
2023-03-14

您必须将界面更新为:

interface LocationService {
    @GET("locations?countryid=fr")
    fun getLocationList() : Deferred<Response<List<Location>>>
}

此外,您不需要LocationResponse类并删除以下代码:

data class LocationResponse (val results : List<Location>)

您正在期待响应并像这样解析它:

{
  "results": [
    { .. }
  ]
}
 [
    { .. }
  ]
 类似资料:
  • 我正在用Netty框架创建一个代理,但我注意到收到的最后一条消息在传递到下一个节点之前往往会延迟。 设计: 客户| 基本上,当服务器在将消息传递给客户机之前启动消息时会出现延迟,或者如果服务器在第一条消息之后立即发送后续消息,那么第一条消息就会通过,第二条消息会延迟几秒钟。为什么会这样?是否缺少一些配置参数?

  • 如何将此Json响应转换为改装bean我得到了Gson错误,就像使用JsonReader一样。setLenient(true)在第1行第1列路径接受格式错误的JSON$ api调用为 字符串CATEGORY\u API=“”https://api.callingservice.com"; 请帮助我解决这个问题,如何将Json响应转换为Bean,我的Bean类如下

  • 当通过URL调用我的Web应用程序中不存在的项目时,Spring会使用JSON响应,其中包含(时间、状态、错误、消息、路径)等数据。所以,我需要更改这个JSON的结构,特别是我需要删除路径。我该怎么做?我应该在我的项目中在哪里实现异常的自定义?向大家问好! json响应修改

  • 其答复如下: 我相信问题出在响应前面的jsonFlickrApi上。 执行以下代码时: }

  • 首先,是否有人对GRPC客户机服务器实现与websocket protobuf客户机服务器实现之间的吞吐量/延迟进行了性能比较?或者至少是类似的东西。 为了实现这一目标,我正在试用示例JAVA helloworld grpc客户机服务器,并尝试将响应的延迟与类似的websocket客户机服务器进行比较。目前,我正在本地机器上用客户端和服务器进行测试。 websocket客户端服务器在服务器端有一个

  • 我一直在学习spring Webflux和reactive programming,并陷入了一个问题,我试图解决的重试逻辑使用spring WebClient。我已经创建了一个客户机,并成功地调用了一个外部Web服务GETendpoint,该endpoint返回一些JSON数据。 当外部服务以状态响应时,响应包括标头,该标头具有一个值,指示在重试请求之前应等待多长时间。我想在spring WebF