我使用gson序列化java对象,并设置LongSerializationPolicy.STRING来序列化Long字段。像这样:
Gson gson = new GsonBuilder()
.setLongSerializationPolicy(LongSerializationPolicy.STRING)
.create();
Map<String, Long> resultMap = Maps.newHashMap();
resultMap.put("id", 123456789L);
JsonObject dataObj = new JsonObject();
dataObj,addProperty("id", 123456789L);
System.out.println(gson.toJson(resultMap));
System.out.println(gson.toJson(dataObj));
结果是:
{"id":"123456789"}
{"id":123456789}
为什么结果不一样?我期望的两个结果是 {"id":"123456789L"}
最佳答案
我相信那是因为JsonObject
将您的值添加为 Map<String,JsonValue>
和JsonValue
延伸Object
,因此当序列化您输入的值时,任何内容都将被解析为字符串。
关于java - 我使用gson序列化java对象,并将LongSerializationPolicy设置为LongSerializationPolicy.STRING,但我无法理解结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47629080/