如何使用android studio中的改造服务在请求中传递json

Posted

技术标签:

【中文标题】如何使用android studio中的改造服务在请求中传递json【英文标题】:How to pass json in request using retrofit services in android studio 【发布时间】:2018-11-04 18:08:23 【问题描述】:

如何在改造中传递这些类型的请求中的请求数据。

【问题讨论】:

您必须创建一个 json 对象并将该 json 对象作为参数中的字符串传递,为此您必须创建一个包含这些值和键的模型类,并且使用 Gson 您可以创建一个 json字符串中的对象 先生,您有这方面的演示代码 好的,我将创建并发布为答案 非常感谢先生 【参考方案1】:

主要考虑的是

    Gson gson = new Gson();
    String strJsonObject = gson.toJson(OBJECT_OF_YOUR_MODEL_CLASS);

strJsonObject is string value you can pass as parameter

这是一个如何实现它的代码片段..

     ObjectModel objectModel = new ObjectModel();
     objectModel.setMobile_number("123456789");
     objectModel.setWork_number("12345789");
     objectModel.setFax_number("123465");
     objectModel.setFirst_name("first name");
     objectModel.setLast_name("last name");
     objectModel.setWebsite("ww.solution.com");

    ArrayList<ObjectModel.Email> emails = new ArrayList<>();
    ObjectModel.Email email = new ObjectModel.Email();
    email.setPersonal("abc@gmail.com");
    email.setWork("work@gmail.com");
    emails.add(email);

    objectModel.setEmail(emails);

    Gson gson = new Gson();
    String strJsonObject = gson.toJson(objectModel);
    Log.e("strJsonObject", strJsonObject);

创建ObjectModel.class

public class ObjectModel 

String mobile_number = "";
String work_number = "";
String fax_number = "";
String first_name = "";
String last_name = "";
String website = "";
ArrayList<Email> email = new ArrayList<>();


public String getMobile_number() 
    return mobile_number;


public void setMobile_number(String mobile_number) 
    this.mobile_number = mobile_number;


public String getWork_number() 
    return work_number;


public void setWork_number(String work_number) 
    this.work_number = work_number;


public String getFax_number() 
    return fax_number;


public void setFax_number(String fax_number) 
    this.fax_number = fax_number;


public String getFirst_name() 
    return first_name;


public void setFirst_name(String first_name) 
    this.first_name = first_name;


public String getLast_name() 
    return last_name;


public void setLast_name(String last_name) 
    this.last_name = last_name;


public String getWebsite() 
    return website;


public void setWebsite(String website) 
    this.website = website;


public ArrayList<Email> getEmail() 
    return email;


public void setEmail(ArrayList<Email> email) 
    this.email = email;


public static class Email 
    String work = "";
    String personal = "";

    public String getWork() 
        return work;
    

    public void setWork(String work) 
        this.work = work;
    

    public String getPersonal() 
        return personal;
    

    public void setPersonal(String personal) 
        this.personal = personal;
    

【讨论】:

谢谢,我将使用此代码并告知响应。【参考方案2】:

在使用改造时,使用子体创建数据请求非常简单。 请按照以下步骤轻松完成此操作。

    复制Json body代码并粘贴到本网站如下图所示

    json2schema website

    在各自的字段中添加包名和类名,然后选择如图所示的选项。

    点击预览,然后它会生成具有给定参数的模型类,如下图所示。

    Modelclass Preview used for Retrofit

    然后关闭窗口并单击 zip 按钮,它将生成包含必要文件的 .zip 文件夹。复制这些文件并添加到您的项目中。

    然后在您的 Retrofit Interface 类中,像这样调用 JSON 正文文件 @Headers("Content-Type: application/json") @POST(APIs.REGISTER) Call<ModelResponse> registerUser(@Body ModelBody modelBody);

如果您有任何疑问,可以在这里与我联系。

【讨论】:

以上是关于如何使用android studio中的改造服务在请求中传递json的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android Studio 中使用改造来检索数据

当应该为真时,Android Studio 改造响应返回布尔值为假

如何在 android 中使用改造来解析这个 web 服务?

GroovyAndroid Studio 中创建 Groovy 工程 ( 创建 Android Studio 工程 | 创建并改造 Java 依赖库 | 编写 Groovy 代码并运行 )

如何从android改造上传图像到服务器

如何在asp.net Web方法中修复“改造和Web服务中的500个内部服务器错误”[关闭]