Можно ли как-нибудь десериализовать тип данных BigQuery Numeri c, используя gson? - PullRequest
0 голосов
/ 01 мая 2020

При десериализации объекта BigQuery в пользовательский объект я сталкиваюсь с проблемой ниже. Поэтому я использую BigQuery Storage API для получения результатов Bigquery. Ниже приведен код для того же.

BigQueryIO.read(new ReadTable<Payments>(Payments.class)).from("TableName")
                                .withMethod(Method.DIRECT_READ)

Как вы можете видеть внутри класса ReadTable, я десериализирую объекты с помощью gson.

gson.fromJson(jsonElement, class1);

Ниже приведен код для пользовательского класса pojo, только геттер и сеттер, и я хочу данные этого поля в формате String.

private @Nullable String amount;
public String getAmount() {
return amount;
    }
    public void setAmount(String amount) {
        this.amount = amount;
    }

getting this error while deserialising Numeric Object

Можно ли как-нибудь решить эту проблему?

1 Ответ

0 голосов
/ 06 мая 2020

Похоже, что это может быть ошибка, но мы можем обойти это. Я подозреваю, что ByteBuffer может быть проанализирован как BigDecimal. Можете ли вы попробовать что-то вроде этого:

new BigDecimal(theByteBuffer.toCharBuffer().array()

или, если BigInteger будет работать:

new BigInteger(theByteBuffer.array()

Дайте мне знать, если это работает вообще, или мы должны повторить, чтобы выяснить, как это сделать.

...