如何在改造中为json字符串响应编写模型类?
Posted
技术标签:
【中文标题】如何在改造中为json字符串响应编写模型类?【英文标题】:How to write a model class for json string response in retrofit? 【发布时间】:2021-08-29 13:21:12 【问题描述】:您好,我是安卓新手,
我曾经使用过常规的 json 对象响应,但现在我被要求使用这样的 json 字符串响应,
"\"message\":\"OTP is sent to your Mobile number and Email id\",\"status\":true,\"existing_user\":true"
我不知道如何使用此响应调用 API。我搜索了如何做到这一点,但一无所获。如果有人知道如何完成它,请帮助我。 提前致谢!
【问题讨论】:
【参考方案1】:首先,对于网络调用,您可以使用 Retrofit。
然后您可以使用此站点将您的 JSON 响应转换为 java 类 Json to java
例如,您的 JSON 被转换为下面的类
public class Output
public String message;
public Boolean status;
public Boolean existingUser;
【讨论】:
是传统方法吧?但它不适用于这种响应。我尝试过这个。它抛出 "com.google.gson.JsonSyntaxException: java.lang.IllegalStateException in android" 。不知道怎么回事 你需要删除json中的“\”字符以避免出现这个异常 另外请不要忘记从 JSON 的开头和结尾删除 " 字符 我现在明白了。谢谢!【参考方案2】:package com.example;
import javax.annotation.Generated;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
@Generated("jsonschema2pojo")
public class Example
@SerializedName("message")
@Expose
private String message;
@SerializedName("status")
@Expose
private Boolean status;
@SerializedName("existing_user")
@Expose
private Boolean existingUser;
public String getMessage()
return message;
public void setMessage(String message)
this.message = message;
public Boolean getStatus()
return status;
public void setStatus(Boolean status)
this.status = status;
public Boolean getExistingUser()
return existingUser;
public void setExistingUser(Boolean existingUser)
this.existingUser = existingUser;
【讨论】:
以上是关于如何在改造中为json字符串响应编写模型类?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 3 中为来自 web 服务的 Json 响应创建模型类