java - JsonPath - 读取 Java Long 类型

标签 java json types jsonpath

我有看起来像这样的 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/

相关文章:

java - 有时定位服务无法在后台运行

javascript - jade 在迭代中获取对象键名

java - Struts 2 操作未将所需结果返回到 Jquery Ajax 调用

types - Rust 中的枚举与结构类型名称如何工作?

java - 是否可以在不使用反射的情况下获取.class文件(在java中)的信息

java - 使用 REST 和 Javaconfig 在 Spring Security 中摘要验证

ios - 无法使用 '[item]' 类型的索引为 'item' 类型的值添加下标

haskell - 约束种类中的相等约束

python - 在 Python 中存储纬度和经度值的理想数据类型是什么?

java - 使用垂直空白字符作为 java 扫描器分隔符在每个末尾扫描空字符串