JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,常用于前后端數(shù)據(jù)傳輸。在Java中使用JSON也非常方便,可以通過第三方庫來進(jìn)行JSON的解析和轉(zhuǎn)換。本文主要介紹JSON數(shù)組的格式化。
在Java中,常用的JSON庫有很多,比如Gson、Jackson等。這里我們以Jackson為例,介紹一下如何將JSON數(shù)組格式化輸出。
// 定義一個JSON數(shù)組 String jsonStr = "[{\"name\":\"Tom\", \"age\":18}, {\"name\":\"Lucy\", \"age\":20}]"; // 解析JSON數(shù)組 ObjectMapper mapper = new ObjectMapper(); Object jsonArray = mapper.readValue(jsonStr, Object.class); // 將JSON數(shù)組格式化輸出 ObjectWriter writer = mapper.writerWithDefaultPrettyPrinter(); String formattedJson = writer.writeValueAsString(jsonArray); System.out.println(formattedJson);
上述代碼中,我們首先定義了一個JSON數(shù)組,然后使用Jackson庫將其解析成一個Object類型的對象,接著使用ObjectWriter將其格式化輸出。
需要注意的是,如果JSON數(shù)組中每個元素的結(jié)構(gòu)都相同,我們也可以將其轉(zhuǎn)換為一個Java數(shù)組或者List,然后進(jìn)行操作。以List為例:
// 定義一個JSON數(shù)組 String jsonStr = "[{\"name\":\"Tom\", \"age\":18}, {\"name\":\"Lucy\", \"age\":20}]"; // 解析JSON數(shù)組 ObjectMapper mapper = new ObjectMapper(); List<Map<String, Object>> dataList = mapper.readValue(jsonStr, List.class); // 遍歷List for (Map<String, Object> data : dataList) { System.out.println("name: " + data.get("name") + ", age: " + data.get("age")); }
上述代碼中,我們將JSON數(shù)組解析成一個List<Map<String, Object>>類型的對象,然后遍歷List中每個Map,輸出其中的name和age屬性。
JSON數(shù)組格式化輸出在前后端數(shù)據(jù)交互中非常常見,掌握其操作方法對于Java開發(fā)者來說是非常必要的。