0

我在我的 Java 代码中处理大量数字,并且由于 JavaScript 的限制(即整数的 32 位支持),我需要将这些数字写为我的应用程序返回的 JSON 中的字符串。

是否有全局配置或注释可以让我这样做?如果可能,我想避免编写自定义序列化程序/适配器。

我正在使用带有新 JSON-B/Yasson 支持的 RestEasy。

4

1 回答 1

1

我能想到的唯一方法是使用这样的适配器:

import javax.json.bind.adapter.JsonbAdapter;

public class AdapterIntegerToString implements JsonbAdapter<Integer, String> {

    @Override
    public String adaptToJson(Integer obj) throws Exception {
        return String.valueOf(obj);
    }

    @Override
    public Integer adaptFromJson(String obj) throws Exception {
        return Integer.parseInt(obj);
    }
}

然后用以下内容注释您的属性:

@JsonbTypeAdapter(AdapterIntegerToString.class)
private Integer age;

默认情况下,任何其他Integer没有注释的都将被视为。

于 2019-04-04T13:37:28.087 回答