【问题标题】:Parse Json data using Retrofit and Gson使用 Retrofit 和 Gson 解析 Json 数据
【发布时间】:2017-10-16 16:52:03
【问题描述】:

当我使用 Retrofit 进行 API 调用时,我得到以下 JSON 响应。

现在我想将数据映射到模型中。最好的方法是什么?提前致谢。

编辑:这是真正的 JSON 响应。

{
"status": "success",
"data": {
    "messages": [],
    "result": {
        "clinicCode": "Medics",
        "firstName": "Charles",
        "lastName": "Sanders",
        "officeId": 0,
        "id": 7811,
        "startDate": 1508139082929,
        "timeZoneId": 0,
        "userDetailId": 6,
        "userName": "charles",
        "jobTitle": {
            "id": 1,
            "text": "Doctor",
            "count": 1
        },
        "isSuperUser": false,
        "clientId": 10,
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGluaWNDb2RlIjoiTWVkaWNzIiwiZW1haWwiOm51bGwsImVuZERhdGUiOm51bGwsImZpcnN0TmFtZSI6IkNoYXJsZXMiLCJsYXN0TmFtZSI6IlNhbmRlcnMiLCJvZmZpY2VJZCI6MCwiaWQiOjc4MTEsInNwZWNpYWx0eUlkIjpudWxsLCJzdGFydERhdGUiOjAsInRpbWVab25lSWQiOjAsInVzZXJEZXRhaWxJZCI6NiwidXNlck5hbWUiOiJjaGFybGVzIiwib2ZmaWNlIjpudWxsLCJzcGVjaWFsdHkiOm51bGwsInRpbWVab25lIjpudWxsLCJ1c2VyRGV0YWlsIjpudWxsLCJwYXJhbWV0ZXJzIjpudWxsLCJqb2JUaXRsZSI6bnVsbCwiaXNTdXBlclVzZXIiOmZhbHNlLCJjbGllbnRJZCI6MTAsImNvZGUiOm51bGwsInRva2VuIjpudWxsLCJlbXBsb3llZUlkIjoxNCwicHJvdmlkZXJJZCI6bnVsbCwiaXNBY3RpdmUiOmZhbHNlLCJpc0xvY2tlZCI6ZmFsc2UsImxhc3RQYXNzd29yZENoYW5nZWQiOjAsImxvY2tlZENvZGVJZCI6bnVsbCwibG9ja2VkRGF0ZVRpbWUiOm51bGwsInBhc3N3b3JkIjpudWxsLCJwYXRpZW50SWQiOm51bGwsInByZWZMYW5nSWQiOm51bGwsInNlc3Npb25JZCI6NzgxMSwiY3JlYXRlZEJ5IjpudWxsLCJlbXBsb3llZSI6bnVsbCwibGFzdE1vZGlmaWVkQnkiOm51bGwsImxvY2tlZENvZGUiOm51bGwsInBhdGllbnQiOm51bGwsInByZWZMYW5nIjpudWxsLCJhcHBsaWNhdGlvbk5hbWUiOm51bGwsIm1hY2hpbmVJZCI6bnVsbCwibGFuZ0lkIjpudWxsLCJjb3VudHJ5Q29kZSI6IlVTIn0.Zd0TwwjP_HjzfgQzfS_-QIAXQ1F8TNTxFMSpve5VRWo",
        "employeeId": 14,
        "isActive": false,
        "isLocked": false,
        "lastPasswordChanged": 0,
        "sessionId": 0
    }
}
}

【问题讨论】:

  • 使用jsonschema2pojo.org为你的json响应生成POJO
  • 你能用真实的Json代替截图吗
  • 您可以在您的 android studio 中下载 gsonFormat 插件以将响应映射到您的模型类

标签: android retrofit2 gson


【解决方案1】:
  1. 为响应创建一个模型类。使用在线 POJO 生成器(http://www.jsonschema2pojo.org/).Set 生成器选项中的注释样式为 GSON。

  2. 将模型类复制到您的项目中。

  3. 将模型类设置为调用服务的模板类
  4. Retrofit 会将 json 映射到 Call 中定义的 Model 类,并返回与 retrofit.Callback 类的 onResponse() 方法中的主体相同的内容。

【讨论】:

  • 我按照描述做了。但问题是我的回调从未被调用,尽管我得到了使用日志拦截器可以看到的响应。
猜你喜欢
  • 1970-01-01
  • 2015-12-05
  • 1970-01-01
  • 1970-01-01
  • 2021-01-07
  • 2023-04-01
  • 2019-09-25
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多