У меня есть служба отдыха Java, и запрос, который вызывает службу REST, содержит объект JSON.
Я обнаружил, что sub_array_1 и sub_array_2 были пустыми списками, но другие члены класса имеют свои значения в receviedObj.
Разве @Consumes () не может анализировать более одного уровня объекта json?
Как я могу получить правильные данные в sub_array_1 и sub_array_2?
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
/* ... */
@POST
@Path("")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response sendRequest(ClassB receviedObj) {
/* ... */
}
json объект любит:
{
"item_1": "value_1",
"item_2": "value_2",
"item_3": "value_3",
"otherItems": [
{
"subitem_1": "subvalue_1",
"subObject": {
"name": "aaabbb",
"sub_array_1": [
{
"data_1": "d11",
"data_2": "d12",
"data_3": "d13"
},
{
"data_1": "d21",
"data_2": "d22",
"data_3": "d23"
}
],
"sub_array_2": [
{
"tag_1": "v1",
"tag_2": "v2",
"tag_3": "v3",
"tag_4": "v4"
}
]
}
}
]
}
Java-класс:
public class ClassB {
public String item_1;
public String item_2;
public String item_3;
public List<otherItems> otherItems;
}
public class otherItems{
public String subitem_1;
public subObject subObject;
public otherItems(){
this.subitem_1 = "";
this.subObject = new subObject();
}
// ================================
public static class subObject{
public String name;
public List<sub_array_1> sub_array_1;
public List<sub_array_2> sub_array_2;
public subObject(){
this.name= "";
this.sub_array_1 = new ArrayList<sub_array_1>();
this.sub_array_2 = new ArrayList<sub_array_2>();
}
}
// =========================================
public static class sub_array_1 {
public String data_1;
public String data_2;
public String data_3;
public String getdata_1() {
return data_1;
}
public String getdata_2() {
return data_2;
}
public String getdata_3() {
return data_3;
}
}
public static class sub_array_2 {
public String tag_1;
public String tag_2;
public String tag_3;
public String tag_4;
public String gettag_1() {
return tag_1;
}
public String gettag_2() {
return tag_1;
}
public String gettag_3() {
return tag_1;
}
public String gettag_4() {
return tag_1;
}
}
}