【发布时间】:2020-04-19 13:21:58
【问题描述】:
我正在使用 JSON.simple 库并尝试解析来自 HTTP GET 的 JSON 响应。它工作正常,但我很难解码以下结构
"example": [
{
"param1": 4.88,
"param2": 60,
"param3": [
{
"param3_1": 501,
"param3_2": "Rain",
}
],
},
我使用以下代码成功提取了 param1 和 param2:
JSONObject jo = (JSONObject) new JSONParser().parse(jsonString);
JSONArray ja;
Iterator<Map.Entry> itMap;
Iterator itArray;
ja = (JSONArray) jo.get("example");
if (ja != null) {
itArray = ja.iterator();
while (itArray.hasNext()) {
ExampleClass e = new ExampleClass();
itMap = ((Map) itArray.next()).entrySet().iterator();
while (itMap.hasNext()) {
Map.Entry pair = itMap.next();
switch (pair.getKey().toString()) {
case "param1":
e.param1 = (double)pair.getValue();
break;
case "param2":
e.param2 = (long)pair.getValue();
break;
case "param3":
.....
break;
default:
break;
}}}}
有谁知道如何设置迭代器来获取 param3 值?
【问题讨论】:
-
为什么不写一个 POJO 然后使用 GSON 呢?
-
有什么明显的区别或者我为什么要使用它而不是json.simple?
-
Pojo 让您的生活越来越轻松,代码更简洁、更简单。请用 gson 研究 pojo。
-
@Mitch 你的问题听起来像是我为什么要使用集合而不是实现我自己的 LinkedList 或 Hashmap。当然你可以实现 LinkedList 或 Hashmap,但我们使用集合 API 来简化我们的工作。 GSON 也是如此。
标签: java arrays json parsing json-simple