一尘不染

如何使用翻新2发布JSON数组

json

我需要使用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);

活动课

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)”。请帮我。提前致谢。


阅读 300

收藏
2020-07-27

共1个答案

一尘不染

试试这个代码

api服务

 @POST("/api/employee/checkin")
Call<Sample> CHECKIN(@Body JSONStringer data);

API客户端

OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
    httpClient.addInterceptor(new Interceptor() {
        @Override
        public Response intercept(Interceptor.Chain chain) throws IOException {
            Request original = chain.request();

            // Request customization: add request headers
            Request.Builder requestBuilder = original.newBuilder()
                    .addHeader("Content-Type", "application/json")
                    .addHeader("x-access-token", "eyJhbGci");

            Request request = requestBuilder.build();
            return chain.proceed(request);
        }
    });

    OkHttpClient client = httpClient.build();



    return new Retrofit.Builder()
            .baseUrl(ROOT_URL)
            .client(client)
            .addConverterFactory(GsonConverterFactory.create())
            .build();

活动

 ApiService service = retroClient.getApiService();

    Call<Sample> call = service.CHECKIN(jsonStringer);

    call.enqueue(new Callback<Sample>() {
        @Override
        public void onResponse(Call<Sample> call, Response<Sample> response) {
            dialog.dismiss();
            if (response.isSuccessful()) {
                Sample result = response.body();


            } else {
                // response received but request not successful (like 400,401,403 etc)
                //Handle errors
            }

        }

        @Override
        public void onFailure(Call<Sample> call, Throwable t) {
            dialog.dismiss();
            Toast.makeText(MainActivity.this, "Network Problem", Toast.LENGTH_LONG).show();
        }

    });
2020-07-27