首页 > 解决方案 > 有没有办法告诉 JSON 一个数字是 Long 而不是 Integer?

问题描述

我有一个名为“扇区”的表,它的 ID 是 Long 而不是 Integer。当我从邮递员那里发送一个请求时,我说我想要某个表中的实体,其中“anotherEntity.idSector = 1”它会给我一个错误。

经过几次尝试/错误后,我才发现这个“1”是 Postman 的整数,所以当它到达 Java 时,它会给我一个错误,因为需要一个 Long 值。

那么,有没有办法告诉 JSON 该值是一个 Long 数字?如果它是双精度数,我会将“1”替换为“1.0”并且可以,但是使用长数字?

提前致谢!

标签: javaspringrestpostmanlong-integer

解决方案


不,你不能“告诉 JSON”任何东西,它只是一种编码格式。像 JavaScript 一样,JSON 没有整数、没有长整数、没有浮点数和双精度数。

它有数字:https ://datatracker.ietf.org/doc/html/rfc8259#section-6

如果您需要比 JSON 的数字类型提供的更高的整数精度,您通常会将数字编码为字符串。对于像记录 ID 这样偶然是数字而不是语义数字的字段,这通常是一个很好的策略(即,您永远不会对它们执行数字运算,例如加法或除法)。


推荐阅读