O Thrift não pode desserializar do objeto json para java

Eu gerei um objeto java a partir do seguinte objeto econômico:

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

Eu escrevi um código java tentando serializar o objeto java para json string e desserialize a json string de volta para o objeto java. Posso serializar com êxito, mas não foi possível desserializar.

    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());

Ele continua lançando a seguinte exceção:

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

Alguém pode me ajudar a descobrir qual é o problema? Desde já, obrigado!

questionAnswers(1)

yourAnswerToTheQuestion