【问题标题】:How to write a model class for json string response in retrofit?如何在改造中为json字符串响应编写模型类?
【发布时间】: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。我搜索了如何做到这一点,但一无所获。如果有人知道如何完成它,请帮助我。 提前致谢!

【问题讨论】:

    标签: java android json android-studio retrofit


    【解决方案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;
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      • 2015-06-22
      • 1970-01-01
      相关资源
      最近更新 更多