Java 和 Python 解析动态 key 的 JSON 数据

时间:2024-05-28 12:35:38

一、概述

解析JSON过程中,什么情况都可能遇到。遇到特殊的情况,不会怎么办?肯定不是设计的问题,一定是你的姿势不对。

有这样一种JSON需要解析:

{
"b3444533f6544": {
"path": "path",
"at": 1490100417,
"data": {
"datastream": [
{
"id": "BX_V_XW",
"value": 400.75
}
],
"at": 1490100417
}
}
}

其中,第二行的 "b3444533f6544" 不定。

二、解决方案

2.1 Python 方案

dic = json.loads(data)
key = dic.keys()[0]
timestamp = dic[key]['data']['at']
streamArr = dic[key]['data']['datastream']

2.2 Java 方案

参考自 segmentfault.com - 如何解析key为动态的json

LinkedHashMap<String, String> jsonMap = JSON.parseObject(jsonStr, new TypeReference<LinkedHashMap<String, String>>(){});
String key = entry.getKey();
String value = entry.getValue();
// 再使用其他方式对 value 进行解析。

此文在我的 Github Pages 上同步发布,地址为:Java 和 Python 解析动态 key 的 JSON 数据

相关文章