Sparsamkeit kann nicht von JSON zu Java-Objekt deserialisiert werden

Ich habe ein Java-Objekt aus dem folgenden Gebrauchtwarenobjekt generiert:

struct Account {
    1: required string accountType,
    2: bool accountActive,
}

Ich habe einen Java-Code geschrieben, der versucht, das Java-Objekt in einen JSON-String zu serialisieren und den JSON-String anschließend wieder in ein Java-Objekt zu deserialisieren. Ich kann erfolgreich serialisieren, die Deserialisierung ist jedoch fehlgeschlagen.

    TSerializer serializer = new TSerializer(new TSimpleJSONProtocol.Factory());
    TDeserializer deserializer = new TDeserializer(new TSimpleJSONProtocol.Factory());

    Account a1 = new Account();
    a1.setAccountType("P");
    a1.setAccountActive(true);

    String json = serializer.toString(a1);
    System.out.println(json);

    Account a2 = new Account();
    deserializer.deserialize(a2, json, "UTF-8");
    System.out.println(a2);
    System.out.println(a2.getAccountType());

Es wird weiterhin die folgende Ausnahme ausgelöst:

Exception in thread "main" org.apache.thrift.protocol.TProtocolException: Required field 'accountType' was not present! Struct: Account(accountType:null, accountActive:false)

Kann mir jemand helfen, herauszufinden, was das Problem ist? Danke im Voraus!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage