逆直列化プロセスはイントロスペクション/リフレクションを使用します。つまり、JSONで検出されたものと同じ属性をチェックし、クラス属性タイプに従って値を設定します(つまり、整数の場合)。
プロセスは再帰的です。したがって、POJOに他のPOJO属性がある場合、すべての属性が設定されるまで、JSONの値をオブジェクトとして解析しようとします。 私はあなたが使用しているライブラリを知らないが、Gensonは、例えば、次に
POJO myPojo = POJO.class.newInstance();
のように見えるように、イントロスペクション/リフレクションを通してそれを呼び出すために、属性なしのコンストラクタを求め、それがします同じような方法で各属性を設定します。
long value = Long.ParseLong(myJson.get('value'));
// The example field is a long int
Field f = POJO.getClass().getDeclaredField("aFieldName");
f.setLong(myPojo, value);
あなたはより完全な例をしたい場合は、javadocのを見て:https://docs.oracle.com/javase/tutorial/reflect/member/fieldValues.html
私はFasterXML.Jacksonライブラリを使用しています。私は上記を理解している、それは私が興味がある値の実際の設定です。属性をJSONの値に設定するだけで設定した属性か、その属性のPOJOで定義されているsetSomeMethod()を使用していますか? – Elijah
あなたのコメントに一致するように回答しました。 "setLong(objectConcerned、value)"は、私が思うに、あなたが探しているメソッドです。 – yanneke
同じページにあるので、JSONをpojoに直列化解除すると、pojo属性はsetSomeArg(String someValu)メソッドによって設定されていますが、これは常にそうです。 – Elijah