gpt4 book ai didi

java - 如何使用 Retrofit 2 发布 JSON 数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:08:15 24 4
gpt4 key购买 nike

我需要使用 Retrofit 2 发布一个 JSON 对象。我的 JSON 对象是

{ "logTime" : "", "datas" : [ { "dat1": "1", " dat2": "", " dat3": "", " dat4": "", " dat5": ""
}, { "dat1": "1", " dat2": "", " dat3": "", " dat4": "", " dat5": ""
} ]}

我试过使用下面的代码:

API 服务

@FormUrlEncoded
@Headers({
"Content-Type: application/json",
"x-access-token: eyJhbGciOiJIU"
})
@POST("/api/employee/checkin")
Call<String> CHECKIN(@Body String data);

Activity 类

JSONStringer jsonStringer = null;
try {
jsonStringer=new JSONStringer().object().key("logTime").value("")
.key("datas")
.array()
.object().key("dat1").value("1")
.key("dat2").value("3")
.key("dat3").value("5")
.key("dat4").value("5")
.endObject()
.endArray()
.endObject();
} catch (JSONException e) {
e.printStackTrace();
}

ApiService service = retroClient.getApiService();

Call<String> login = service.CHECKIN(String.valueOf(jsonStringer));

login.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
dialog.dismiss();
try {
String val = response.body();


} catch (Exception e) {
e.getMessage();
}
}

@Override
public void onFailure(Call<String> call, Throwable t) {

}
});

使用此代码时出现“错误:未找到改造注释。(参数 #2)”。请帮我。提前致谢。

最佳答案

使用 GSON 库

在build.gradle中加入这个依赖

compile 'com.google.code.gson:gson:2.8.0'

API 服务

@Headers({
"Content-Type: application/json",
"x-access-token: eyJhbGciOiJIU"
})
@POST("/api/employee/checkin")
Call<String> CHECKIN(@Body String data);

Activity 类

try {

JsonArray datas = new JsonArray();

JsonObject object = new JsonObject();
object.addProperty("dat1","1");
object.addProperty("dat2", "");
object.addProperty("dat3", "");
object.addProperty("dat4", "");
object.addProperty("dat5", "");

datas.add(object);

JsonObject req = new JsonObject();
req.addProperty("logTime", "");
req.addProperty("datas", new Gson().toJson(datas));


} catch (Exception e) {
e.printStackTrace();
}



ApiService service = retroClient.getApiService();

Call<String> login = service.CHECKIN(String.valueOf(req));

login.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
dialog.dismiss();
try {
String val = response.body();


} catch (Exception e) {
e.getMessage();
}
}

@Override
public void onFailure(Call<String> call, Throwable t) {

}
});

关于java - 如何使用 Retrofit 2 发布 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41820740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com