在Java中,处理JSON时会遇到这样的问题。解决方法是将TIMESTAMP作为键的条目转换为数字类型。请参考以下代码示例:
String jsonStr = "{\"name\": \"Tom\", \"age\": 25, \"timestamp\": 1539059230000}";
JSONObject jsonObj = new JSONObject(jsonStr);
Iterator> keys = jsonObj.keys();
while (keys.hasNext()) {
String key = (String)keys.next();
if (jsonObj.get(key) instanceof JSONObject) {
// 如果当前值是JSON对象,递归调用自己
iterateJSONObj((JSONObject) jsonObj.get(key));
} else if (jsonObj.get(key) instanceof JSONArray) {
// 如果当前值是JSON数组,递归调用方法
iterateJSONArray((JSONArray) jsonObj.get(key));
} else {
// 如果当前值是时间戳,将其转换为数字类型
if (key.equals("timestamp")) {
Long timestamp = (Long) jsonObj.get(key);
jsonObj.put(key, timestamp);
}
System.out.println("key: " + key + ", value: " + jsonObj.get(key));
}
}
在上述示例中,我们使用了递归方式来处理JSON对象和数组。当遍历JSON对象时,我们检查当前值是否为时间戳。如果是,则将其转换为数字类型。这样,我们可以成功遍历JSON对象,并且能够正确处理时间戳。
上一篇:遍历JSON对象以映射列名和值