91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java怎么解析復雜json格式數據

小億
90
2023-12-13 00:44:00
欄目: 編程語言

在Java中解析復雜的JSON格式數據通常有以下幾種方法:

  1. 使用JSON庫:Java中有很多成熟的JSON解析庫,比如Jackson、Gson、Fastjson等。這些庫提供了各種方法來解析和操作JSON數據。你可以使用其中的一種庫來解析復雜的JSON格式數據。

以Jackson庫為例,可以使用以下代碼解析JSON數據:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

String jsonString = "[{\"name\":\"John\",\"age\":30,\"cars\":[\"Ford\",\"BMW\",\"Fiat\"]},{\"name\":\"Alice\",\"age\":25,\"cars\":[\"Toyota\",\"Honda\"]}]";
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(jsonString);

for (JsonNode node : jsonNode) {
    String name = node.get("name").asText();
    int age = node.get("age").asInt();
    String cars = node.get("cars").toString();
    
    System.out.println("Name: " + name);
    System.out.println("Age: " + age);
    System.out.println("Cars: " + cars);
}
  1. 手動解析:如果你不想使用第三方庫,你也可以手動解析JSON數據。由于JSON數據是一個樹狀結構,你可以使用遞歸或循環來遍歷JSON數據的各個節點并獲取所需的值。

以下是一個使用遞歸解析JSON數據的例子:

import java.util.Iterator;
import org.json.JSONArray;
import org.json.JSONObject;

String jsonString = "[{\"name\":\"John\",\"age\":30,\"cars\":[\"Ford\",\"BMW\",\"Fiat\"]},{\"name\":\"Alice\",\"age\":25,\"cars\":[\"Toyota\",\"Honda\"]}]";
JSONArray jsonArray = new JSONArray(jsonString);

for (int i = 0; i < jsonArray.length(); i++) {
    JSONObject jsonObject = jsonArray.getJSONObject(i);
    parseJson(jsonObject);
}

public void parseJson(JSONObject jsonObject) {
    Iterator<String> keys = jsonObject.keys();
    while (keys.hasNext()) {
        String key = keys.next();
        Object value = jsonObject.get(key);
        
        if (value instanceof JSONObject) {
            parseJson((JSONObject) value);
        } else if (value instanceof JSONArray) {
            JSONArray jsonArray = (JSONArray) value;
            for (int i = 0; i < jsonArray.length(); i++) {
                Object arrayValue = jsonArray.get(i);
                
                if (arrayValue instanceof JSONObject) {
                    parseJson((JSONObject) arrayValue);
                } else {
                    System.out.println(key + ": " + arrayValue.toString());
                }
            }
        } else {
            System.out.println(key + ": " + value.toString());
        }
    }
}

以上是兩種常用的解析復雜JSON格式數據的方法,你可以根據自己的需求選擇其中一種方法來解析JSON數據。

0
松滋市| 宜良县| 慈溪市| 长宁县| 沂南县| 托克托县| 鸡泽县| 岐山县| 福建省| 江津市| 崇左市| 黄大仙区| 河南省| 柯坪县| 湘潭县| 玛多县| 西乌珠穆沁旗| 军事| 高邮市| 花莲市| 黑河市| 上犹县| 肥西县| 广昌县| 长宁区| 元氏县| 伊通| 黄梅县| 金湖县| 扎鲁特旗| 甘肃省| 吕梁市| 射阳县| 余庆县| 襄城县| 滦平县| 和硕县| 新兴县| 通辽市| 沁阳市| 眉山市|