Zastanawiam się nad czymś podczas pracy nad naszym projektem. Czy API GSON od Google używa konstruktorów z JSON-a, które chcesz deserializować? Na przykład:Java - Czy Google GSON używa konstruktorów?
Mam ciąg JSON, który chcę przekonwertować na obiekt pracownika. Obiekt Employee ma konstruktor, który stosuje pewne sprawdzenia parametrów (na przykład, jest to ID> 0). Używamy poniższego kodu do deserializacji JSON-ów. Ale czy ten konstruktor jest wywoływany nawet podczas deserializacji JSON do pracownika?
Link do GSON: https://github.com/google/gson
EDIT: Więc po eksperymenty z punktów przerwie zorientowali się konstruktora nie jest tzw. Czy ktokolwiek zna sposób, aby mimo wszystko go wywołać?
/**
* The GSON class to help you create and de-serialize the JSON objects.
*/
Gson gson = new Gson();
/**
* Convert JSON to an object.
* @param json The JSON to convert.
* @param cls The class to convert to.
* @return The converted JSON to object.
*/
public Object jsonToObject(String json, Class<?> cls) {
return gson.fromJson(json, cls);
}
umieścić punkt przerwania w konstruktorze i debugować kod, nie? –
@RC. Tak, masz rację, właśnie to przetestowałem, a konstruktor nie został wywołany. – Guido
Założę się, że używa pustego konstruktora do utworzenia instancji obiektu, a pola odczytu zostaną ustawione bezpośrednio za pomocą odbicia. – EpicPandaForce