Я сделал REST API на java, и у меня есть следующий DTO.
@ApiModel(value = "testType", description = "Test type")
public class TestType
{
private int type;
private String typeName;
private boolean isTypeSpecial;
private boolean isTypeTrue;
@JsonInclude(JsonInclude.Include.NON_ABSENT)
private List<typeMasterDTO> typeMasterList;
public TestType()
{
}
@ApiModelProperty(example = "0", value = "Type", required = true)
public int getType()
{
return type;
}
public void setType(int type)
{
this.type= type;
}
@ApiModelProperty(example = "Dragon", value = "Name of the typw", required = true)
public String getTypeName()
{
return typeName;
}
public void setTypeName(String typeName)
{
this.typeName= typeName;
}
@ApiModelProperty(value = "It is a special type", required = true)
public boolean isTypeSpecial()
{
return isTypeSpecial;
}
public void setTypeSpecial(boolean isTypeSpecial)
{
this.isTypeSpecial= isTypeSpecial;
}
@ApiModelProperty(value = "It is a true type", required = true)
public boolean isTypeTrue()
{
return isTypeTrue;
}
public void setTrueType(boolean isTypeTrue)
{
this.isTypeTrue= isTypeTrue;
}
@ApiModelProperty(value = "List of types")
public List<typeMasterDTO> getTypeMasterList()
{
return typeMasterList;
}
public void setTypeMasterList(List<typeMasterDTO> typeMasterList)
{
this.typeMasterList= typeMasterList;
}
}
В своем классе API я получаю данные для указанного выше DTO из sql и возвращаю ответ, используя код:
Response com.mmp.rest.AbstractResource.buildResponse(Response<?> response, ResponseMode mode)
Результат, который я получаю, выглядит так:
[
{
"type": 1,
"typeName": "New type",
"typeMasterList": [
{
"typeMaster": 0,
"typeMasterName": "Default"
},
{
"typeMaster": 1,
"typemasterName": "Custom"
}
],
"TypeTrue": false,
"TypeSpecial": true
}
]
Итак, мои сомнения:




[ ... ] сохранят свой порядок, поскольку это упорядоченный список / массив.is... похож на get... для обычных геттеров и поэтому удален.@RohanJosephGeorge, какую IDE вы используете?
Я использую затмение
Фреймворк JSON переименовывает ваши примитивные переменные, удаляя слова «is» и «has» из имени переменной. Вы можете добавить другое имя, добавив @JsonProperty (value = "isTypeSpecial")
Этот ответ указан в ответе 1, это из-за алфавитного порядка в HashMap
Надеюсь, это ответит на ваши вопросы.
Да, это ответило на мои вопросы. @JsonProperty - отличный способ обойти это, спасибо.
Вау, это было точно и информативно ... спасибо Однако я попытался выполнить отладку в Response Builder и ввел страницу «Источник не найден ... Файл Jar не имеет вложенного источника».