- Используя Lombok в качестве моих методов получения / установки, вы можете игнорировать его и писать свои собственные методы получения / установки
- Существует проблема с телом вашего запроса, вы должны передать ключ в json как переменную javaимя, вы передаете
Student_payment_details
вместо payment_detailsList
- Методы получения и установки должны соответствовать имени вашей переменной.
URL запроса:
curl -X POST \
http://localhost:8080/register/reg \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"id": 300,
"name": "kukri",
"age": 26,
"registrationNumber": "54326",
"payment_detailsList": {
"pay": 50000,
"date": "23061994",
"phcounter": "SKB"
}
}'
Java Dtos:
import lombok.Data;
@Data
public class Student_payment_details {
int pay;
String date;
String phcounter;
}
import lombok.Data;
@Data
public class Student {
private int id;
private String name;
private int age;
private String registrationNumber;
private Student_payment_details payment_detailsList; //getter and setter
}
На следующем рисунке показано содержимое переменной ученика, заполненной внутри контроллера
Примечание:Я не знаю ваш вариант использования, но в качестве общего предложения, пожалуйста, следуйте 1 типу соглашения о присвоении имен, snake_case
или camelCase
.
В Java чаще всего используется camelCase
.
Также следует присвоить имя переменнойбыть похожим на тип класса,
здесь переменная payment_detailsList имеет тип Student_payment_details
, что приводит к путанице, если вы хотите, чтобы имя переменной JSON отличалось, вы можете использовать как
@JsonProperty("payment_detailsList")
private Student_payment_details student_payment_details;