Модификация - передать вложенный JSON с массивом - PullRequest
0 голосов
/ 25 мая 2019

Я проверил это в своем бэкэнд-PHP API.Данные, которые будут передаваться следующим образом:

{
    "driver": "Dzil",
    "vehicle_number": "Jalal",
    "date_unique_number": "2019-09-09",
    "unique_number": "ABCDEF",
    "rest_product_weighing_details": [400,401]
}

Как видите, rest_product_weighing_detail - это массив.

Как сделать модернизацию, будет обрабатывать это в посте?

Любой совет, который он так ценил

Ответы [ 4 ]

1 голос
/ 25 мая 2019

Я думаю, что это справиться за вас:

private List<Integer> rest_product_weighing_details;

, а также эта ссылка может помочь вам: Модификация Android разбора вложенного ответа JSON в списке

1 голос
/ 25 мая 2019

Шаг 1:

В вашем классе декодирования:

public class Decode {

private List<Integer> values = new ArrayList<>(); // in json it is "rest_product_weighing_details"

public List<Integer> getValues() {
    return values;
 }

public void setValues(List<Integer> values) {
    this.values = values;
 }
}

Шаг 2:

создать следующее JsonDeserializer:

public class MyDeserializer implements JsonDeserializer<Decode> {

@Override
public Decode deserialize(JsonElement arg0, Type arg1, JsonDeserializationContext arg2) throws JsonParseException {
    JsonObject decodeObj = arg0.getAsJsonObject();
    Gson gson = new Gson();
    Decode decode = gson.fromJson(arg0, Decode.class);
    List<Integer> values = null;
    if (decodeObj.get("rest_product_weighing_details").isJsonArray()) {
        values = gson.fromJson(decodeObj.get("rest_product_weighing_details"), new TypeToken<List<Integer>>() {
        }.getType());
    } else {
        Integer single = gson.fromJson(decodeObj.get("rest_product_weighing_details"), Integer.class);
        values = new ArrayList<Integer>();
        values.add(single);
    }
    decode.setValues(values);
    return decode;
 }

}
1 голос
/ 25 мая 2019
  • Создание класса модели вашего тела json

Создание объекта с набором ваших данных.

public class BodyModel {

@SerializedName("driver")
@Expose
private String driver;
@SerializedName("vehicle_number")
@Expose
private String vehicleNumber;
@SerializedName("date_unique_number")
@Expose
private String dateUniqueNumber;
@SerializedName("unique_number")
@Expose
private String uniqueNumber;
@SerializedName("rest_product_weighing_details")
@Expose
private List<Integer> restProductWeighingDetails = null;
//...
}

Передача объекта как тела в вашем вызове API

@Headers({"Content-Type: application/json"})
@POST("your/api/endpoint")
Call<ResponseBody> sendDrivingData(@Body BodyModel body);
0 голосов
/ 25 мая 2019

создать класс и присвоить ему значение,

public class Example {

@SerializedName("driver")
@Expose
private String driver;
@SerializedName("vehicle_number")
@Expose
private String vehicleNumber;
@SerializedName("date_unique_number")
@Expose
private String dateUniqueNumber;
@SerializedName("unique_number")
@Expose
private String uniqueNumber;
@SerializedName("rest_product_weighing_details")
@Expose
private List<Integer> restProductWeighingDetails = null;

public String getDriver() {
return driver;
}

public void setDriver(String driver) {
this.driver = driver;
}

public String getVehicleNumber() {
return vehicleNumber;
}

public void setVehicleNumber(String vehicleNumber) {
this.vehicleNumber = vehicleNumber;
}

public String getDateUniqueNumber() {
return dateUniqueNumber;
}

public void setDateUniqueNumber(String dateUniqueNumber) {
this.dateUniqueNumber = dateUniqueNumber;
}

public String getUniqueNumber() {
return uniqueNumber;
}

public void setUniqueNumber(String uniqueNumber) {
this.uniqueNumber = uniqueNumber;
}

public List<Integer> getRestProductWeighingDetails() {
return restProductWeighingDetails;
}

public void setRestProductWeighingDetails(List<Integer> restProductWeighingDetails) {
this.restProductWeighingDetails = restProductWeighingDetails;
}

}

вы можете создать класс json pojo, используя http://www.jsonschema2pojo.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...