私たちのプロジェクトに取り組んでいるときに何か不思議だった。 GoogleのGSON APIは、逆シリアル化したいJSONのコンストラクタを使用していますか?例えば、Java - GoogleのGSONはコンストラクタを使用していますか?
私はEmployeeオブジェクトに変換したいJSON Stringを持っています。 Employeeオブジェクトには、パラメータにいくつかのチェックを適用するコンストラクタがあります(たとえば、ID> 0)。以下のコードを使用してJSONを逆シリアル化しています。しかし、JSONを従業員にデシリアライズするときにもこのコンストラクタが呼び出されますか?
GSONへのリンク:https://github.com/google/gson
EDIT: だから私は、コンストラクタが呼び出されない考え出しブレークポイントで実験しました。とにかく誰かがそれを呼び出す方法を知っていますか? GSON、ジャクソンもしくはれるJava Persistence API(JPA)のような
/**
* 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);
}
コンストラクタにブレークポイントを置き、コードをデバッグしますか? –
@RC。はい、あなたは正しい、私はそれをテストし、コンストラクタが呼び出されていません。 – Guido
オブジェクトをインスタンス化するために空のコンストラクタを使用していると仮定し、読み込みフィールドは直接リフレクションを使用して設定されます。 – EpicPandaForce