在java中传入原始JSON体的改造中的POST请求问题

在java中传入原始JSON体的改造中的POST请求问题,java,json,android-studio,retrofit,Java,Json,Android Studio,Retrofit,我试图传入这个原始JSON主体,它抛出了一个POST请求端点,该端点创建了一个新用户: { "testId": 6, "name": "Jpe Smith", "buttonsCorrect": 10, "buttonsIncorrect": 2, "startSession": 1243242, &quo

我试图传入这个原始JSON主体,它抛出了一个POST请求端点,该端点创建了一个新用户:

{
      "testId": 6,
      "name": "Jpe Smith",
      "buttonsCorrect": 10,
      "buttonsIncorrect": 2,
      "startSession": 1243242,
      "endSession": 4234123,
      "totalTime": 1343432,
      "userConsent": true,
      "feedback": [{
          "uiVariant1": 3,
          "uiVariant2": 5,
          "uiVariant3": 5,
          "uiVariant4": 3,
          "uiVariant5": 4,
          "uiVariant6": 6
      }]
}
这是我当前用于改装的API模型:

public interface TestClient {
    
    @Headers("Content-Type: application/json")
    @POST("v1/todos")
    Call<User> createUser(@Body User user);

}

下面是处理请求并创建要发送的数据的活动

        submit.setOnClickListener(v -> {
            String netScore = String.valueOf(nps.getRating());
            String customerScore = String.valueOf(css.getRating());
            showToast("Net score " + netScore);
            showToast("Customer score " + customerScore);
            // Store additional feedback here
            Log.e("Additional User Feedback", additionalFeedback.getText().toString());

            // preparing the data before creating JSON file.

            String testId = (String) StartScreen.userDataBundle.get("testId");
            Log.e("testId", testId);

            long sessionStart = StartScreen.userDataBundle.getLong("sessionStart");
            Log.e("sessionStart", String.valueOf(sessionStart));

            String name = StartScreen.userDataBundle.getString("name");
            Log.e("name", name);

            long sessionEnd = Instant.now().getEpochSecond();
            Log.e("sessionEnd", String.valueOf(sessionEnd));

            int totalTime = 000000;
            String userConsent = "true";
            int buttonsCorrect = 10;
            int buttonsIncorrect = 2;

            JSONArray feedback = new JSONArray();
            JSONObject feedbackScores = new JSONObject();
            try {
                feedbackScores.put("Net Score", netScore);
            } catch (JSONException e) {
                e.printStackTrace();
            }
            try {
                feedbackScores.put("Customer Score", customerScore);
            } catch (JSONException e) {
                e.printStackTrace();
            }
            feedback.put(feedbackScores);
            feedback.put(feedbackScores);

            User user = new User(
                    "1",
                    "jeff",
                    0,
                    0,
                    000000,
                    0000000,
                    000000,
                    "true",
                    feedback
            );

            sendNetworkRequest(user);
        });

        additionalFeedback.addTextChangedListener(submitTextWatcher);
    }


    private void sendNetworkRequest(User user) {
        Retrofit.Builder builder = new Retrofit.Builder()
                .baseUrl("endpointURL")
                .addConverterFactory(GsonConverterFactory.create());

        Retrofit retrofit = builder.build();
        TestClient client = retrofit.create(TestClient.class);
        Call<User> call = client.createUser(user);

        call.enqueue(new Callback<User>() {
            @Override
            public void onResponse(Call<User> call, Response<User> response) {
                //Toast.makeText(UserSurveyActivity.this, "Success!" + response.body().getTestId(), Toast.LENGTH_SHORT).show();
                Toast.makeText(UserSurveyActivity.this, "Success!" + response.body(), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(Call<User> call, Throwable t) {
                Toast.makeText(UserSurveyActivity.this, "Something went wrong!", Toast.LENGTH_SHORT).show();
                t.getCause();
                t.printStackTrace();
            }
        });
    }

submit.setOnClickListener(v->{
String netScore=String.valueOf(nps.getRating());
String customerScore=String.valueOf(css.getRating());
showtoos(“净分数”+netScore);
showToast(“客户分数”+客户核心);
//在此处存储其他反馈
Log.e(“附加用户反馈”,additionalFeedback.getText().toString());
//在创建JSON文件之前准备数据。
String testId=(String)StartScreen.userDataBundle.get(“testId”);
Log.e(“testId”,testId);
long sessionStart=StartScreen.userDataBundle.getLong(“sessionStart”);
Log.e(“sessionStart”,String.valueOf(sessionStart));
String name=StartScreen.userDataBundle.getString(“名称”);
Log.e(“名称”,名称);
long sessionEnd=Instant.now().getepochsond();
Log.e(“sessionEnd”,String.valueOf(sessionEnd));
int totalTime=000000;
字符串userapprovement=“true”;
int buttonsCorrect=10;
int按钮不正确=2;
JSONArray feedback=新的JSONArray();
JSONObject FeedbackCores=新的JSONObject();
试一试{
反馈分数。输入(“净分数”,netScore);
}捕获(JSONException e){
e、 printStackTrace();
}
试一试{
反馈分数。输入(“客户分数”,customerScore);
}捕获(JSONException e){
e、 printStackTrace();
}
反馈。输入(反馈核心);
反馈。输入(反馈核心);
用户=新用户(
"1",
“杰夫”,
0,
0,
000000,
0000000,
000000,
“真的”,
反馈
);
发送网络请求(用户);
});
additionalFeedback.addTextChangedListener(submitTextWatcher);
}
专用void sendNetworkRequest(用户){
reformation.Builder=新的reformation.Builder()
.baseUrl(“端点URL”)
.addConverterFactory(GsonConverterFactory.create());
改装改装=builder.build();
TestClient=reformation.create(TestClient.class);
Call Call=client.createUser(用户);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
//Toast.makeText(UserSurveyActivity.this,“Success!”+response.body().getTestId(),Toast.LENGTH\u SHORT.show();
Toast.makeText(UserSurveyActivity.this,“Success!”+response.body(),Toast.LENGTH\u SHORT.show();
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Toast.makeText(UserSurveyActivity.this,“出错了!”,Toast.LENGTH\u SHORT.show();
t、 getCause();
t、 printStackTrace();
}
});
}
端点功能在postman中很好,可以添加用户并获取用户,但是,尽管请求成功,JSON数据没有正确传递,我该怎么办

多谢各位

        submit.setOnClickListener(v -> {
            String netScore = String.valueOf(nps.getRating());
            String customerScore = String.valueOf(css.getRating());
            showToast("Net score " + netScore);
            showToast("Customer score " + customerScore);
            // Store additional feedback here
            Log.e("Additional User Feedback", additionalFeedback.getText().toString());

            // preparing the data before creating JSON file.

            String testId = (String) StartScreen.userDataBundle.get("testId");
            Log.e("testId", testId);

            long sessionStart = StartScreen.userDataBundle.getLong("sessionStart");
            Log.e("sessionStart", String.valueOf(sessionStart));

            String name = StartScreen.userDataBundle.getString("name");
            Log.e("name", name);

            long sessionEnd = Instant.now().getEpochSecond();
            Log.e("sessionEnd", String.valueOf(sessionEnd));

            int totalTime = 000000;
            String userConsent = "true";
            int buttonsCorrect = 10;
            int buttonsIncorrect = 2;

            JSONArray feedback = new JSONArray();
            JSONObject feedbackScores = new JSONObject();
            try {
                feedbackScores.put("Net Score", netScore);
            } catch (JSONException e) {
                e.printStackTrace();
            }
            try {
                feedbackScores.put("Customer Score", customerScore);
            } catch (JSONException e) {
                e.printStackTrace();
            }
            feedback.put(feedbackScores);
            feedback.put(feedbackScores);

            User user = new User(
                    "1",
                    "jeff",
                    0,
                    0,
                    000000,
                    0000000,
                    000000,
                    "true",
                    feedback
            );

            sendNetworkRequest(user);
        });

        additionalFeedback.addTextChangedListener(submitTextWatcher);
    }


    private void sendNetworkRequest(User user) {
        Retrofit.Builder builder = new Retrofit.Builder()
                .baseUrl("endpointURL")
                .addConverterFactory(GsonConverterFactory.create());

        Retrofit retrofit = builder.build();
        TestClient client = retrofit.create(TestClient.class);
        Call<User> call = client.createUser(user);

        call.enqueue(new Callback<User>() {
            @Override
            public void onResponse(Call<User> call, Response<User> response) {
                //Toast.makeText(UserSurveyActivity.this, "Success!" + response.body().getTestId(), Toast.LENGTH_SHORT).show();
                Toast.makeText(UserSurveyActivity.this, "Success!" + response.body(), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(Call<User> call, Throwable t) {
                Toast.makeText(UserSurveyActivity.this, "Something went wrong!", Toast.LENGTH_SHORT).show();
                t.getCause();
                t.printStackTrace();
            }
        });
    }