To convert a JSONArray
to a List<Map<String, String>>
in Java, you can utilize the Jackson library's ObjectMapper
for efficient parsing. Here's how you can achieve this:
1. Add Jackson Dependency:
Ensure that the Jackson library is included in your project. If you're using Maven, add the following dependency to your pom.xml
:
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.17.0</version>
</dependency>
2. Convert JSONArray
to List<Map<String, String>>
:
Assuming you have a JSON array string, you can parse it as follows:
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;public class JsonArrayToListMap {public static void main(String[] args) {String jsonArray = "[{\"key1\":\"value1\", \"key2\":\"value2\"}, {\"keyA\":\"valueA\", \"keyB\":\"valueB\"}]";ObjectMapper mapper = new ObjectMapper();try {// Convert JSON array string to List<Map<String, String>>List<Map<String, String>> list = mapper.readValue(jsonArray, new TypeReference<List<Map<String, String>>>(){});// Iterate through the list and print each mapfor (Map<String, String> map : list) {System.out.println(map);}} catch (Exception e) {e.printStackTrace();}}
}
Explanation:
-
ObjectMapper: Jackson's
ObjectMapper
is a powerful tool for converting between Java objects and JSON. -
TypeReference: The
TypeReference
is used to define the target type for the conversion. In this case, it's aList<Map<String, String>>
. -
readValue: This method reads the JSON input and converts it into the specified type.
{key1=value1, key2=value2} {keyA=valueA, keyB=valueB}
This approach ensures that your JSON array is accurately converted into a list of maps, with each JSON object represented as a
Map<String, String>
in the list.