gpt4 book ai didi

java - 解析包含 Long 值的 JSON 字符串时出现 NumberFormatException

转载 作者:行者123 更新时间:2023-12-02 02:07:29 24 4
gpt4 key购买 nike

我有一个日志文件,每个句子都包含一个 JSON 对象,如下所示:-

{"action": "follow", "target": "FabianoCaruana", "timestamp": 1487149397523, "user": "GMHikaru"}
{"action": "tweet", "id": 16606634614844517897, "message": "woop #ruby", "timestamp": 1487149445603, "user": "hugopeixoto"}
{"action": "retweet", "target_id": 16606634614844517897, "timestamp": 1487149446020, "user": "spambot"}
{"action": "retweet", "target_id": 16606634614844517897, "timestamp": 1487149446592, "user": "noob_saibot"}
{"action": "tweet", "id": 14936153188153171323, "message": "woop #vim", "timestamp": 1487149463067, "user": "eevee"}
{"action": "follow", "target": "eevee", "timestamp": 1487149466209, "user": "pkoch"}
{"action": "tweet", "id": 1801829421162967878, "message": "woop #processes", "timestamp": 1487149468671, "user": "r00k"}
{"action": "retweet", "target_id": 1801829421162967878, "timestamp": 1487149469555, "user": "noob_saibot"}
{"action": "follow", "target": "r00k", "timestamp": 1487149472418, "user": "pkoch"}

我正在使用 JSON 解析器读取每一行并将其存储到字符串中以供进一步处理

String line = {"action": "tweet", 
"id": 16606634614844517897,
"message": "woop #ruby",
"timestamp": 1487149445603,
"user": "hugopeixoto"};

使用“json-simple-1.1.1.jar”解析上面的字符串时,出现错误:-

java.lang.NumberFormatException: For input string: "16606634614844517897"

解析上述 JSON 字符串的代码:-

JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(line);
String name =(String) json.get("user");

我想打印上面 JSON 字符串中存在的“用户”名称。

显然,id 是 Long 格式,因此异常(exception)。

您能否建议我一个解决方法来消除上述异常。我尝试了所有组合,但没有成功。

最佳答案

Obviously, the id is a Long format

不,抱歉,最大 Long 值如下:

9223372036854775807 <-- has a length of 19

当你的时候

16606634614844517897 <- has a length of 20
<小时/>

我看到两个简单的解决方案可以解决您的问题。

如果 id 仅用于唯一标识的目的(这里可能就是这种情况),您应该使用 String 来代替?

如果您需要使用 id 并比较其数值或对其执行数值运算(我对此表示怀疑),您仍然可以使用如下所示的 BigInteger

new BigInteger("16606634614844517897");

关于java - 解析包含 Long 值的 JSON 字符串时出现 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50543625/

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