错误值从JSONObject的未来 - java的
问题描述:
这是我的最后一个问题的延续: how to keep data stored into a hashtable - java错误值从JSONObject的未来 - java的
这里是JSON:
{"DeviceID":"35181805087546548","TotalCount":"0","Timestamp":"2013-03-05 14:30:15"}
这里是我的哈希表的声明:
private static Hashtable<Integer,String> table = new Hashtable<Integer,String>();
private static AtomicInteger count = new AtomicInteger() ;
这里是解析jsonobject的代码:
JSONObject jsonObj;
try {
jsonObj = new JSONObject(string);
int id = jsonObj.optInt("DeviceID", count.addAndGet(1));
String name = jsonObj.toString();
table.put(id, name);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
即使JSON中的“DeviceID”发生变化,使用下面的代码我的ID始终为“2147483647”。 任何提示?
非常感谢
答
Java中的maximum value of an integer是2,147,483,647,因此您的设备ID不适合。您可能需要将其存储为long
(最大值为9,223,372,036,854,775,807)。
答
您获得的数字是有符号整数的最大值,您需要使用long,否则结果限制为Integer.MAX_VALUE。
Sotirios,提出了答案,而不是一个问题 – 2013-03-05 20:46:04
+1以前看起来像一个有效的答案,现在也是如此。不需要粗鲁。 – Gamb 2013-03-05 20:46:18
表达式非常重要,感谢您的更新。 – 2013-03-05 20:47:45