我在我的 Java 代码中处理大量数字,并且由于 JavaScript 的限制(即整数的 32 位支持),我需要将这些数字写为我的应用程序返回的 JSON 中的字符串。
是否有全局配置或注释可以让我这样做?如果可能,我想避免编写自定义序列化程序/适配器。
我正在使用带有新 JSON-B/Yasson 支持的 RestEasy。
我能想到的唯一方法是使用这样的适配器:
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
没有注释的都将被视为。