Я пытаюсь преобразовать этот класс ниже, используя метод Gson.ToJson(Object)
, но returing мне объект хэш-код класса, например: [email protected]
Gson.toJson (Object) возвращает объект хэш-код
Однако я может получить user.expertise без каких-либо проблем, и со всеми отношениями: Gson.ToJson(user.getExpertise)
@Entity
@SequenceGenerator(name="seqUser", sequenceName="SEQ_USER", allocationSize=1)
public class User {
@Id
private Long id;
@Column(nullable=false)
private String name;
@OneToOne
private Contact contact;
//enum
private TypeUser typeUser;
@ManyToMany(cascade = { CascadeType.ALL })
@JoinTable(name = "USER_REVIEW",
joinColumns = { @JoinColumn(name = "USER_ID") },
inverseJoinColumns = { @JoinColumn(name = "REVIEW_ID") })
@Column(name="REVIEW")
private Set<Review> review= new HashSet<Review>();
@ManyToMany(cascade = { CascadeType.ALL })
@JoinTable(name = "USER_EXPERTISE",
joinColumns = { @JoinColumn(name = "USER_ID") },
inverseJoinColumns = { @JoinColumn(name = "EXPERTISE_ID") })
@Column(name="EXPERTISE")
private Set<Expertise> expertise = new HashSet<Expertise>();
}
Это мой метод Gson:
Gson gson = new GsonBuilder()
.registerTypeAdapter(User.class, new MyTypeAdapter<Expertise>())
.registerTypeAdapter(User.class, new MyTypeAdapter<Review>())
.create();
return gson.toJson(user);
Это мой MyTypeAdapter:
class MyTypeAdapter<T> extends TypeAdapter<T> {
public T read(JsonReader reader) throws IOException {
return null;
}
public void write(JsonWriter writer, T obj) throws IOException {
if (obj == null) {
writer.nullValue();
return;
}
writer.value(obj.toString());
}
}
Итак, как же я получаю Gson.ToJson(user)
на самом деле возвращает строку JSON, так что я могу использовать Gson.FromJson на моем другом конце? Спасибо заранее.
Почему у вас есть адаптеры типа? Почему вы записываете вывод 'toString' в' JsonWriter'? –
@SotiriosDelimanolis Без адаптеров типа Gson дает мне StackOverFlow. Выходной файл gson.ToJson (пользователь) является возвратом метода Restfull. – VyMajoris
Объекты 'Review' имеют обратные ссылки на их' Пользователь'? –