在Java中,使用JSON格式來表示數據已經變得越來越流行了。JSON數據由key和value組成,key與value之間由冒號隔開,不同key-value之間由逗號隔開。在Java程序中,我們需要遍歷JSON數據中的key,以便獲取相應的value值。
{ "name": "Tom", "age": 18, "address": { "province": "Guangdong", "city": "Shenzhen" } }
在上面的JSON數據中,我們可以通過遍歷獲取到name、age、address三個key。下面是在Java中遍歷JSON數據中key的代碼示例。
import com.alibaba.fastjson.JSONObject; public class JsonDemo { public static void main(String[] args) { String jsonStr = "{\"name\":\"Tom\",\"age\":18,\"address\":{\"province\":\"Guangdong\",\"city\":\"Shenzhen\"}}"; JSONObject json = JSONObject.parseObject(jsonStr); for (String key : json.keySet()) { System.out.println(key); } } }
在上面的代碼中,通過FastJSON將JSON字符串轉換為JSONObject對象,然后通過遍歷遍歷每個key來獲取到對應的值。
當然,我們也可以通過遞歸的方式遍歷JSON數據中的所有key,代碼如下所示:
public class JsonDemo { public static void main(String[] args) { String jsonStr = "{\"name\":\"Tom\",\"age\":18,\"address\":{\"province\":\"Guangdong\",\"city\":\"Shenzhen\"}}"; JSONObject json = JSONObject.parseObject(jsonStr); traverse(json); } private static void traverse(JSONObject json) { for (String key : json.keySet()) { System.out.println(key); Object value = json.get(key); if (value instanceof JSONObject) { traverse((JSONObject) value); } } } }
在上面的代碼中,我們定義了一個遞歸函數,每次遍歷到一個JSON對象時,就調用遞歸函數來遍歷該對象內部的key。
通過上面的兩個示例代碼,可以發現在Java程序中遍歷JSON數據中的key并不是很難。不過需要注意的是,當JSON數據結構復雜時,遍歷的代碼也會變得相對復雜。