Я пытаюсь работать с модификацией для анализа пользовательских данных JSON с Gson на локальный сервер с помощью REST API.
это результат, который я искал:
{
"user_id": 2,
"product": {
"id": 15,
"item_count": 99
}
}
Ниже интерфейс, который я создал
public interface APIService {
@POST("/products")
@FormUrlEncoded
Call<Product> savePost(@Header("Token")String authKey,
@Field("product") Object product,
@Field("userId") String userId);
}
вот функция, которую я использую для отправки данных
// string that i use to call the classes
String userID;
String authKey;
mAPIService = ApiUtils.getAPIService();
mProduct = new Product();
mProduct.setId(productID);
mProduct.setItemCount(numberOfItems.getText().toString().trim());
final String stringMProduct = mProduct.toString();
sendPost(userID, stringMProduct, authKey);
// the function that parses all the data
public void sendPost( String userID, String product, String authKey ) {
mAPIService.savePost(authKey, userID, product).enqueue(new Callback<Product>() {
@Override
public void onResponse(Call<Product> call, retrofit2.Response<Product> response) {
if(response.isSuccessful()) {
showResponse(response.body().toString());
Log.i(TAG, "post submitted to API." + response.body().toString());
}
}
@Override
public void onFailure(Call<Product> call, Throwable t) {
Log.e(TAG, "Unable to submit post to API.");
}
});
}
вот классы, которые я использую Gson для анализа данных в json
public class OrderRequest {
@SerializedName("product")
@Expose
private Product product;
@SerializedName("user_id")
@Expose
private String userId;
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
@Override
public String toString() {
return "OrderRequest{" +
"product=" + product +
", userId='" + userId + '\'' +
'}';
}
}
другой класс Gcode.
Public class Product {
@SerializedName("item_count")
@Expose
private String itemCount;
@SerializedName("id")
@Expose
private String id;
public String getItemCount() {
return itemCount;
}
public void setItemCount(String itemCount) {
this.itemCount = itemCount;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return "Product{" +
"itemCount='" + itemCount + '\'' +
", id='" + id + '\'' +
'}';
}
}
это весь код, который яиспользуя для анализа данных на сервере, я действительно запутался, как я должен отладить его или где полезная нагрузка, я знаю, что это дамп кода, и это не разрешено.бит, в котором я запутался, делает запрос post Cost битом, в котором вы можете иметь массив в массивах