With a bunch ORM frameworks(especially for JVM languages) out there and each one of us sticking to our favorite ORM in the applications that we develop and when there is a necessary or need to handle the data in JDBC level even small stuff like converting ResultSet to Json seems to be a complex task. Here I'll be giving a gist on how to convert ResultSet to JSON object.
While querying the data through JDBC we either look for one tuple or a list of tuple (i.e. one or N rows). In other words, We either query for Map (key representing column name and value representing the actual value in the table) or a List of Map. In technical terms we would invoke queryForList or queryForMap. The ResultSet can then be transformed to a Map from which we can easily transform to JSON object.
The following is the code I have implemented to convert the ResultSet List to a JSON:
List<Map<String, Object>> mapperList = new ArrayList<Map<String, Object>>(); List<Map<String, Object>> transformObject = (List) resultSet; // Result Set might be empty so validate it before processing
if (transformObject.size() < 1) { log.warn("No Results found"); throw new NoEntityFoundException("Data not found"); } //Iterate through each row in resultSet (Basically a Map)
transformObject.forEach(result -> { Map<String, Object> transformMap = new HashMap<String, Object>(); transformData(result, transformMap); mapperList.add(transformMap); });
//print the transformed data
System.out.println(mapper.writeValueAsString(mapperList));
The following is the Object Mapper configuration:
ObjectMapper objectMapper = new ObjectMapper(); //as we don't need to send NULL values in the JSON response objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); objectMapper.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false);
No comments:
Post a Comment