Как отобразить несколько наборов из класса Hibernate в Json?
Это часть класса, которую я отобразил в Hibernate:
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="hall_id")
Set<Literature> literatures;
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="hall_id")
Set<RecycleFacility> recycleFacilities;
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="hall_id")
Set<Assent> assents;
Но когда я пытаюсь сопоставить этот класс с JSon, у меня всегда есть стеки. Я использовал Jackson Mapper, Genson и Google Gson, но они не могут отобразить этот фрагмент кода (или я не знаю, как это отобразить). Может кто-нибудь сказать мне, как правильно отобразить этот вид наборов?
1 ответ
Решение
Предполагая, что ваш формат JSON так
{
"literatures":[
{
"id":10,
"name":"abc"
}
],
"recycleFacilities":[
{
"id":20,
"name":"testFaculty"
}
],
"assents":[
{
"id":30,
"name":"Test"
}
]
}
и предполагая, что ваши классы объектной модели составлены в другом классе, как
Class Another{
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="hall_id")
Set<Literature> literatures;
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="hall_id")
Set<RecycleFacility> recycleFacilities;
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="hall_id")
Set<Assent> assents;
// getter/setter
}
Затем вы можете проанализировать и заполнить вашу спящую объектную модель, как показано ниже.
Another response = gson.fromJson(reader, Another.class);
Вы можете создать JSON из модели, как показано ниже
Gson gson = new Gson();
String jsonString= gson.toJson(yourObject);