如何使用POST方法在android中通过改型发送原始复杂的大JSON和幻灯片更改?
我从服务器得到了一个巨大的如何使用POST方法在android中通过改型发送原始复杂的大JSON和幻灯片更改?,android,retrofit,android-json,Android,Retrofit,Android Json,我从服务器得到了一个巨大的JSON响应,我必须修改一些两三个字段,然后用原始JSON将相同的JSON文件再次发布到服务器 我怎么做?请帮忙, 提前谢谢 这是我从服务器得到的JSON响应,我必须将状态代码101更改为110,并将其作为原始JSON发送到服务器: { "PatientID": 61270, "ItemId": 113769, "InvoiceID": 210600, "ReceiptId": null,
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);
@POST(“/Item/approveRefund”)
调用AcceptReturnRequest(@Body ViewReturnRequestModel 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) {
}
});
}
}
public class viewReturnRequest扩展了AppCompative活动{
private RecyclerView视图ReturnRequestRecylCerView;
private RecyclerView.LayoutManager LayoutManager;
专用AdminViewRequestAdapter适配器;
列出vrrList;
相对论;
AdminViewReturnRequestAdapter.RecycleServiceClickListener侦听器;
ProgressBar progressBarVRR;
APIServiceVRR;
TokenManager tokenmanagervr;
调用CallViewRequestData;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u view\u Return\u request);
tokenManagerVrr=TokenManager.getInstance(getSharedReferences(“prefs”,MODE_PRIVATE));
serviceVRR=RefundationBuilder.createServiceWithAuth(ApiService.class,tokenManagerVrr);
progressBarVRR=(ProgressBar)findViewById(R.id.ViewRequestProgressBar);
ViewReturnRequestRecylCerView=(RecyclerView)findViewById(R.id.ViewReturnRequestRecylCerView);
layoutManager=新的LinearLayoutManager(此);
ViewRequestRecylCerView.setLayoutManager(layoutManager);
listener=新的AdminViewReturnRequestAdapter.RecycleServiceClickListener(){
@凌驾
行上的公共void单击(视图,int位置){
}
@凌驾
public void onButtonyClick(视图,内部位置){
int acceptStatusCode=110;
final int id=vrrList.get(position.getId();
acceptRequest(id、acceptStatusCode);
adapter.notifyDataSetChanged();
}
@凌驾
public void onButtonNoClick(视图,int位置){
}
};
//RESTAPI调用
AllViewReturnRequestData();
}
私有void allviewReturnRequestData(){
progressBarVRR.setVisibility(视图可见);
CallViewReturnRequestData=serviceVRR.GetAllViewReturnRequest();
CallViewReturnRequestData.enqueue(新回调(){
@凌驾
公共void onResponse(@NotNull调用,@NotNull响应){
progressBarVRR.setVisibility(视图已消失);
if(response.issusccessful()&&response.body()!=null){
vrrList=response.body();
adapter=新的AdminViewReturnRequestAdapter(vrlist,viewReturnRequest.this,listener);
ViewRequestRecylCerView.setAdapter(适配器);
adapter.notifyDataSetChanged();
}否则{
if(response.code()==401){
startActivity(新意图(viewRequest.this、LoginActivity.class));
完成();
tokenManagerVrr.deleteToken();
Toast.makeText(viewRegureRequest.this,“用户会话已过期,再次登录”,Toast.LENGTH_LONG.show();
}
}
}
@凌驾
public void onFailure(@NotNull Call Call,@NotNull Throwable t){
progressBarVRR.setVisibility(视图已消失);
Snackbar Snackbar=Snackbar.make(findviewbyd(android.R.id.content),“网络状态:”+t.getMessage(),Snackbar.LENGTH\u LONG);
视图snackbar视图=snackbar.getView();
snackbarView.setBackgroundColor(Color.parseColor(“#f5003d”);
TextView tv=(TextView)snackbar view.findviewbyd(R.id.snackbar\u text);
电视.彩色(彩色.白色);
snackbar.show();
}
});
}
公共无效接受请求(最终整数id、最终整数状态代码){
ViewReturnRequestModel ViewReturnRequestModel=新的ViewReturnRequestModel(patientID,ReturnStatus);
Call callAccepted=serviceVRR.AcceptReturnRequest(ViewReturnRequestModel);
callAccepted.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
Snackbar Snackbar=Snackbar.make(VRMAINLAOUT,“接受”,Snackbar.LENGTH\u SHORT);
视图snackbar视图=snackbar.getView();
snackbarView.setBackgroundColor(Color.parseColor(“#5ec639”);
TextView tv=(TextView)snackbar view.findviewbyd(R.id.snackbar\u text);
电视节目(16),;
tv.setTextAlignment(View.TEXT\u ALIGNMENT\u CENTER);
tv.setTypeface(tv.getTypeface(),Typeface.BOLD);
电视.彩色(彩色.白色);
snackbar.show();
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
}
});
}
}
现在,我该怎么做呢?我已经制作了所有必要的POJO
类。转到这个网站粘贴你的json
响应删除你不需要的字段。
然后创建类模型
现在根据需要修改数据,然后将模型
类转换为Json
Gson g = new Gson();
//this will convert your class in json
String str = g.toJson(modelobject);
使用POJO类,您应该已经为单个类创建了getter setter方法。将所需的值设置为该字段,然后在API中再次发送该对象。我在这个链接中的更多代码,请看一看并给出精确的解决方案