我有看起来像这样的 JSON 数据
{"sessionID":7242750700467747000}
该数字先前从服务器响应中获得,并在服务器端生成为 Java Long。客户认为自己是这样的
sessionID
并随请求发送它。问题是当客户端的请求到达服务器时,我必须再次解析这个值才能输入 Long。我使用 JsonPath,具体来说:<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path-assert</artifactId>
<version>0.8.1</version>
<scope>test</scope>
</dependency>
当我像这样解析 JSON 数据时
Long sessionID = JsonPath.read(json, "$.sessionID");
我得到一个异常(exception):
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
所以看起来这个数字是由 JsonPath 解析为整数的。这肯定会导致错误的结果,因为 Integer 小于 Long。 JsonPath 中是否有任何方法可以解析并以 Long 形式返回数据?
最佳答案
这是可能的( json-path:2.4.0
):
JsonPath.parse(json).read("$.sessionID", Long.class);
查看更多:https://github.com/json-path/JsonPath#what-is-returned-when
关于java - JsonPath - 读取 Java Long 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16388886/