0

Gson でa をデシリアライズしようとしてRSAPublicKeyいますが、思いどおりに動作しません。GsonRSAPublicKeyは、引数なしのコンストラクターがないと言ったため、最初に不平を言ったので、次のように作成しましたInstanceCreator

public static class PublicKeyInstanceCreator implements InstanceCreator<RSAPublicKey> {
    public RSAPublicKey createInstance(final Type type) {
        try {
            final KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
            keyGen.initialize(2048);
            final KeyPair key = keyGen.generateKeyPair();
            return (RSAPublicKey) key.getPublic();
        } catch (final NoSuchAlgorithmException e) {
            throw new RuntimeException(e);
        }
    }
}

Gsonオブジェクトの作成時に登録しました

Gson gson = new GsonBuilder().registerTypeAdapter(RSAPublicKey.class, new PublicKeyInstanceCreator()).create();

現在、Gson は正常に動作しているようにRSAPublicKey見えますが、Json ファイルの解析から作成されるRSAPublicKeyオブジェクトはPublicKeyInstanceCreator、逆シリアル化プロセス中にフィールドが変更されることはありません。Gsonに必要なオブジェクトを正しく返すにはどうすればよいですか?

4

0 に答える 0