如何使用POST方法在Android中使用Retrofit发送带有幻灯片更改的原始复杂和大JSON?

问题描述 投票:0回答:1

我从服务器收到一个巨大的JSON响应,我必须修改两个或三个字段,然后使用原始的JSON将相同的JSON文件再次发布到服务器。

我该怎么办?请帮忙,在此先感谢

这是服务器发出的我的JSON响应,我必须将退款状态代码101更改为110,并将其作为原始JSON发送到服务器:

{
        "PatientID": 61270,
        "ItemId": 113769,
        "InvoiceID": 210600,
        "ReceiptId": null,
        "PatientAdmissionId": null,
        "NurseStationId": null,
        "ServiceListPrice": 500.00,
        "ServiceActualPrice": 500.00,
        "ServiceQuantity": 1,
        "ServiceDate": "/Date(1577951487000)/",
        "ReferralPaidDate": null,
        "ModifiedDate": null,
        "CheckoutTime": null,
        "ServiceProviderId": 30465,
        "DoctorId": 30465,
        "DoctorName": "Md. Mahbubur Rahman",
        "ReturnQantity": null,
        "ReturnPrice": null,
        "ReturnPaid": 0.00,
        "ReferrerPaidUserId": null,
        "ReferrerPaidUser": null,
        "Discount": 0.00,
        "DiscountAfterInvoice": false,
        "IsBothSideDiscount": true,
        "DiscountPercentage": 0,
        "Refund": false,
        "RefundApprovedBy": null,
        "RefundStatus": 101,
        "RefundApproval": false,
        "IsReturn": false,
        "RefundNote": "Test",
        "Billed": true,
        "ReferralFee": 200.00,
        "ReferralFeePaid": false,
        "ReferralFeeActual": 200.00,
        "DeliveryDate": "/Date(1577988000000)/",
        "DeliveryTime": "7:00 pm",
        "ReportFormatName": null,
        "LabStatusId": 1,
        "InventoryId": null,
        "ModifiedBy": 30253,
        "PrescriptionItemId": null,
        "Item": {
            "Name": "CBC",
            "GenericName": null,
            "Code": "0110",
            "CompanyName": null,
            "ItemTypeId": 32,
            "MedicalTypeId": 62,
            "ItemSpecimentId": 15,
            "ItemCategoryId": 50406,
            "ItemSubCategoryId": null,
            "ItemGroupCategoryId": null,
            "ItemSubGroupCategoryId": null,
            "SupplierOrVendorId": null,
            "Strength": null,
            "Formulation": null,
            "IsAntibiotic": false,
            "MedicineTypeId": null,
            "IsSurgeryItem": false,
            "MeasurementUnitId": null,
            "SalePrice": 500.00,
            "BuyPrice": 0,
            "ServiceProviderId": null,
            "ReferralAllowed": true,
            "Description": null,
            "DefaultReferrarFee": 200.00,
            "LabReportGroupId": null,
            "NurseStationId": null,
            "NurseStation": null,
            "TaskTypeId": 101,
            "TaskType": null,
            "LabCountDay": 1,
            "IsLabReportItem": false,
            "CreatedDate": null,
            "BedOccupancies": [],
            "Inventories": [],
            "Item_ItemGroup": [],
            "ItemDefaults": [],
            "ItemReorders": [],
            "InitialSetupItems": [],
            "ServiceProviderSurgeryPrices": [],
            "ItemType": null,
            "ItemSpeciment": {
                "Name": "Blood",
                "MedicalTypeId": 62,
                "Items": [],
                "MedicalType": null,
                "TenantId": 16,
                "Tenant": null,
                "Id": 15,
                "Active": true,
                "UserId": 30254,
                "HasErrors": false,
                "ErrorCount": 0,
                "NoErrors": true
            },
            "ItemCategory": {
                "Name": "Haematology",
                "MedicalTypeId": 62,
                "ReferralCommission": 50,
                "Items": [],
                "ItemSubCategories": [],
                "MedicalType": null,
                "TenantId": 16,
                "Tenant": null,
                "Id": 50406,
                "Active": true,
                "UserId": 30254,
                "HasErrors": false,
                "ErrorCount": 0,
                "NoErrors": true
            },
            "ItemSubCategory": null,
            "ItemGroupCategory": null,
            "ItemSubGroupCategory": null,
            "MedicineType": null,
            "MeasurementUnit": null,
            "MedicalType": null,
            "ServiceProvider": null,
            "LabReportGroup": null,
            "SupplierOrVendor": null,
            "PatientServices": [],
            "ReceiptPayments": [],
            "InventoryItem": [],
            "ItemRequisition": [],
            "ExpiryDate": "N/A",
            "Inventory": null,
            "Quantity": 0,
            "PrescriptionItemId": null,
            "BranchId": 0,
            "Branch": null,
            "TenantId": 16,
            "Tenant": null,
            "Id": 113769,
            "Active": true,
            "UserId": 30254,
            "HasErrors": false,
            "ErrorCount": 0,
            "NoErrors": true
        },
        "Inventory": null,
        "User": null,
        "Patient": {
            "OldId": null,
            "FirstName": "MD",
            "LastName": "Pannu",
            "PhoneNumber": "01728621378",
            "GenderId": 1,
            "BloodGroup": null,
            "BloodGroupId": null,
            "FatherName": null,
            "DOB": "/Date(221335200000)/",
            "NationalId": "",
            "Occupation": null,
            "Street": "Elephentroad",
            "City": "Dhaka",
            "Zip": "",
            "Country": "BD",
            "Email": "",
            "Photo": "bfa0f55f-f016-490c-9191-cdc7568392a0.jpg",
            "EmergencyNumber": "",
            "EmergencyContactName": "",
            "EmergencyContactRelation": "",
            "CreatedDate": "/Date(1546768262430)/",
            "Gender": {
                "Name": "Male",
                "Code": 101,
                "TypeName": "Male",
                "User": null,
                "BloodDonors": [],
                "Id": 1,
                "Active": true,
                "UserId": 2,
                "HasErrors": false,
                "ErrorCount": 0,
                "NoErrors": true
            },
            "Memberships": [],
            "PatientInvoices": [],
            "PatientServices": [],
            "Payments": [],
            "DoctorAppointments": [],
            "TenantId": 16,
            "Tenant": null,
            "Id": 61270,
            "Active": true,
            "UserId": null,
            "HasErrors": false,
            "ErrorCount": 0,
            "NoErrors": true
        },
        "PatientInvoice": null,
        "ServiceProvider": {
            "ContactId": 60938,
            "Title": "Dr",
            "ServiceProviderTypeId": 56,
            "NurseStationId": null,
            "DepartmentId": 425,
            "Degree": "MBBS, MPS",
            "Speciality": "Medicine & Child",
            "Description": "null",
            "Code": "",
            "AssignedToAllUsers": true,
            "IsInHouse": true,
            "IsReferer": true,
            "Designation": "Asst. Professor",
            "HasSigningPermission": false,
            "IsSurgeon": false,
            "JoiningDate": null,
            "CreatedDate": null,
            "Contact": {
                "FirstName": "Md. Mahbubur",
                "LastName": "Rahman",
                "PhoneNumber": "01719844843",
                "GenderId": 1,
                "Street": "",
                "City": "",
                "Zip": "",
                "Country": "BD",
                "Email": "",
                "Fax": "",
                "WebSite": "null",
                "Photo": "null",
                "IsCompany": null,
                "ServiceProviders": [],
                "ServiceProviderType": 56,
                "Gender": {
                    "Name": "Male",
                    "Code": 101,
                    "TypeName": "Male",
                    "User": null,
                    "BloodDonors": [],
                    "Id": 1,
                    "Active": true,
                    "UserId": 2,
                    "HasErrors": false,
                    "ErrorCount": 0,
                    "NoErrors": true
                },
                "TenantId": 16,
                "Tenant": null,
                "Id": 60938,
                "Active": true,
                "UserId": 30253,
                "HasErrors": false,
                "ErrorCount": 0,
                "NoErrors": true
            },
            "Department": {
                "Name": "Medicine",
                "ServiceProviders": [],
                "TenantId": 16,
                "Tenant": null,
                "Id": 425,
                "Active": true,
                "UserId": 30253,
                "HasErrors": false,
                "ErrorCount": 0,
                "NoErrors": true
            },
            "Items": [],
            "PatientAdmissions": [],
            "NurseStationInchargeList": [],
            "ServiceProviderType": {
                "Name": "Doctor",
                "ServiceProviders": [],
                "LanguageCode": null,
                "Id": 56,
                "Active": true,
                "UserId": null,
                "HasErrors": false,
                "ErrorCount": 0,
                "NoErrors": true
            },
            "DepartmentName": null,
            "ReferralFee": 0,
            "BranchId": 25,
            "Branch": {
                "Name": "Main",
                "IsMainBranch": false,
                "TenantId": 16,
                "Tenant": {
                    "Name": "mobileapp",
                    "Url": "mobileapp",
                    "Id": 16,
                    "Active": true,
                    "UserId": 2,
                    "HasErrors": false,
                    "ErrorCount": 0,
                    "NoErrors": true
                },
                "Id": 25,
                "Active": true,
                "UserId": 2,
                "HasErrors": false,
                "ErrorCount": 0,
                "NoErrors": true
            },
            "TenantId": 16,
            "Tenant": null,
            "Id": 30465,
            "Active": true,
            "UserId": null,
            "HasErrors": false,
            "ErrorCount": 0,
            "NoErrors": true
        },
        "PrescriptionItem": null,
        "Doctor": {
            "ContactId": 60938,
            "Title": "Dr",
            "ServiceProviderTypeId": 56,
            "NurseStationId": null,
            "DepartmentId": 425,
            "Degree": "MBBS, MPS",
            "Speciality": "Medicine & Child",
            "Description": "null",
            "Code": "",
            "AssignedToAllUsers": true,
            "IsInHouse": true,
            "IsReferer": true,
            "Designation": "Asst. Professor",
            "HasSigningPermission": false,
            "IsSurgeon": false,
            "JoiningDate": null,
            "CreatedDate": null,
            "Contact": {
                "FirstName": "Md. Mahbubur",
                "LastName": "Rahman",
                "PhoneNumber": "01719844843",
                "GenderId": 1,
                "Street": "",
                "City": "",
                "Zip": "",
                "Country": "BD",
                "Email": "",
                "Fax": "",
                "WebSite": "null",
                "Photo": "null",
                "IsCompany": null,
                "ServiceProviders": [],
                "ServiceProviderType": 56,
                "Gender": {
                    "Name": "Male",
                    "Code": 101,
                    "TypeName": "Male",
                    "User": null,
                    "BloodDonors": [],
                    "Id": 1,
                    "Active": true,
                    "UserId": 2,
                    "HasErrors": false,
                    "ErrorCount": 0,
                    "NoErrors": true
                },
                "TenantId": 16,
                "Tenant": null,
                "Id": 60938,
                "Active": true,
                "UserId": 30253,
                "HasErrors": false,
                "ErrorCount": 0,
                "NoErrors": true
            },
            "Department": {
                "Name": "Medicine",
                "ServiceProviders": [],
                "TenantId": 16,
                "Tenant": null,
                "Id": 425,
                "Active": true,
                "UserId": 30253,
                "HasErrors": false,
                "ErrorCount": 0,
                "NoErrors": true
            },
            "Items": [],
            "PatientAdmissions": [],
            "NurseStationInchargeList": [],
            "ServiceProviderType": {
                "Name": "Doctor",
                "ServiceProviders": [],
                "LanguageCode": null,
                "Id": 56,
                "Active": true,
                "UserId": null,
                "HasErrors": false,
                "ErrorCount": 0,
                "NoErrors": true
            },
            "DepartmentName": null,
            "ReferralFee": 0,
            "BranchId": 25,
            "Branch": {
                "Name": "Main",
                "IsMainBranch": false,
                "TenantId": 16,
                "Tenant": {
                    "Name": "mobileapp",
                    "Url": "mobileapp",
                    "Id": 16,
                    "Active": true,
                    "UserId": 2,
                    "HasErrors": false,
                    "ErrorCount": 0,
                    "NoErrors": true
                },
                "Id": 25,
                "Active": true,
                "UserId": 2,
                "HasErrors": false,
                "ErrorCount": 0,
                "NoErrors": true
            },
            "TenantId": 16,
            "Tenant": null,
            "Id": 30465,
            "Active": true,
            "UserId": null,
            "HasErrors": false,
            "ErrorCount": 0,
            "NoErrors": true
        },
        "NurseStation": null,
        "ReceiptPayment": null,
        "PatientAdmission": null,
        "Isgroup": false,
        "PatientServiceIds": null,
        "GroupItemIds": null,
        "MedicalTypeId": 0,
        "BeforeReturnPrice": 0,
        "ReturnBackupPrice": 0,
        "FullReturnServiceListPrice": 0,
        "Amount": 0,
        "MedicalTypeName": null,
        "BranchId": 25,
        "Branch": null,
        "TenantId": 16,
        "Tenant": null,
        "Id": 261932,
        "Active": true,
        "UserId": 30253,
        "HasErrors": false,
        "ErrorCount": 0,
        "NoErrors": true
    }

Api类:

@POST("/Item/approveRefund")
Call<ViewRefundRequestModel> acceptRefundRequest(@Body ViewRefundRequestModel body);

我的主要活动:

public class ViewRefundRequest extends AppCompatActivity{

    private RecyclerView viewRefundRequestRecylcerView;
    private RecyclerView.LayoutManager layoutManager;
    private AdminViewRefundRequestAdapter adapter;
    List<ViewRefundRequestModel> vrrList;
    RelativeLayout vrrMainLayout;
    AdminViewRefundRequestAdapter.RecyclerViewClickListener listener;
    ProgressBar progressBarVRR;

    ApiService serviceVRR;
    TokenManager tokenManagerVrr;

    Call<List<ViewRefundRequestModel>> callViewRefundRequestData;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_refund_request);

        tokenManagerVrr = TokenManager.getInstance(getSharedPreferences("prefs", MODE_PRIVATE));
        serviceVRR = RetrofitBuilder.createServiceWithAuth(ApiService.class, tokenManagerVrr);

        progressBarVRR = (ProgressBar) findViewById(R.id.viewRefundRequestProgressBar);
        viewRefundRequestRecylcerView = (RecyclerView) findViewById(R.id.viewRefundRequestRecylcerView);

        layoutManager = new LinearLayoutManager(this);
        viewRefundRequestRecylcerView.setLayoutManager(layoutManager);

        listener = new AdminViewRefundRequestAdapter.RecyclerViewClickListener() {
            @Override
            public void onRowClick(View view, int position) {

            }

            @Override
            public void onButtonYesClick(View view, int position) {
                int acceptStatusCode = 110;
                final int id = vrrList.get(position).getId();                  
                acceptRequest(id, acceptStatusCode);
                adapter.notifyDataSetChanged();

            }

            @Override
            public void onButtonNoClick(View view, int position) {

            }
        };

        //Rest Api call
        allViewRefundRequestData();
    }


    private void allViewRefundRequestData() {
        progressBarVRR.setVisibility(View.VISIBLE);
        callViewRefundRequestData = serviceVRR.getAllViewRefundRequest();
        callViewRefundRequestData.enqueue(new Callback<List<ViewRefundRequestModel>>() {
            @Override
            public void onResponse(@NotNull Call<List<ViewRefundRequestModel>> call, @NotNull Response<List<ViewRefundRequestModel>> response) {
                progressBarVRR.setVisibility(View.GONE);

                if (response.isSuccessful() && response.body() != null){

                    vrrList = response.body();
                    adapter = new AdminViewRefundRequestAdapter(vrrList, ViewRefundRequest.this, listener);
                    viewRefundRequestRecylcerView.setAdapter(adapter);
                    adapter.notifyDataSetChanged();

                }else {

                    if (response.code() == 401) {
                        startActivity(new Intent(ViewRefundRequest.this, LoginActivity.class));
                        finish();
                        tokenManagerVrr.deleteToken();
                        Toast.makeText(ViewRefundRequest.this, "User session expired, Login again", Toast.LENGTH_LONG).show();
                    }
                }
            }

            @Override
            public void onFailure(@NotNull Call<List<ViewRefundRequestModel>> call, @NotNull Throwable t) {
                progressBarVRR.setVisibility(View.GONE);

                Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "Network Status: " + t.getMessage(), Snackbar.LENGTH_LONG);
                View snackbarView = snackbar.getView();
                snackbarView.setBackgroundColor(Color.parseColor("#f5003d"));
                TextView tv = (TextView) snackbarView.findViewById(R.id.snackbar_text);
                tv.setTextColor(Color.WHITE);
                snackbar.show();
            }
        });
    }

    public void acceptRequest(final int id, final int statusCode){

    ViewRefundRequestModel viewRefundRequestModel = new ViewRefundRequestModel(patientID, refundStatus);
        Call<ViewRefundRequestModel> callAccepted = serviceVRR.acceptRefundRequest(viewRefundRequestModel);

        callAccepted.enqueue(new Callback<ViewRefundRequestModel>() {
            @Override
            public void onResponse(Call<ViewRefundRequestModel> call, Response<ViewRefundRequestModel> response) {

                Snackbar snackbar = Snackbar.make(vrrMainLayout, "Accepted", Snackbar.LENGTH_SHORT);
                View snackbarView = snackbar.getView();
                snackbarView.setBackgroundColor(Color.parseColor("#5ec639"));
                TextView tv = (TextView) snackbarView.findViewById(R.id.snackbar_text);
                tv.setTextSize(16);
                tv.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
                tv.setTypeface(tv.getTypeface(), Typeface.BOLD);
                tv.setTextColor(Color.WHITE);
                snackbar.show();
            }

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

            }
        });
    }


}

现在,我该怎么办?我已经制作了所有必需的POJO类。

android retrofit android-json
1个回答
0
投票

转到此pojo class网站粘贴您的json响应,删除您不需要的字段。然后创建您的类模型。

现在根据需要修改数据,然后将model类转换为Json。就像这样

  Gson g = new Gson();
  //this will convert your class in json
  String str = g.toJson(modelobject); 
© www.soinside.com 2019 - 2024. All rights reserved.