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