gpt4 book ai didi

java - Java中解析Json数值

转载 作者:行者123 更新时间:2023-12-01 12:28:10 24 4
gpt4 key购买 nike

我的 Java 程序采用 JSON 字符串作为参数并解析它。我正在使用 json-simple 解析器。这是link到它。我正在尝试将以下 JSON 字符串作为参数传递给程序。

{
"obj":"timeout" ,
"valInMs":15000
}

我正在尝试获取“valInMs”的值。以下是执行此操作的 java 代码

JSONParser parser = new JSONParser();
JSONObject jsonObj;
jsonObj = (JSONObject) parser.parse(jsonString);
Integer timeout = (Integer) paramJson.get("valInMs");

上述代码引发java.lang.ClassCastException:java.lang.Long无法转换为java.lang.Integer > .

我试图了解程序在遇到 JSON 数字值时应该期待什么。人们无法通过查看 JSON 对象来确定“类型”。

java 程序应该如何处理这个问题?

表格json.org似乎 Json“值”(在许多其他可能的事物中)可以是“number”。 “数字”可以是以下之一:

number
- int
- int frac
- int exp
- int frac exp

最佳答案

Number timeoutNum = (Number) paramJson.get("valInMs");
Long timeoutLong = null;
Double timeoutDouble = null;
if (timeoutNum instanceof Long) {
timeoutLong = (Long) timeoutNum;
}
else if (timeoutNum instanceof Double) {
timeoutDouble = (Double) timeoutNum;
}
else { ... punt ... }

或者可以在 timeoutNum 上使用 intValue() 等,如果需要在整数和 float 之间进行强制转换。

关于java - Java中解析Json数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26166767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com