Middle
Is it possible to parse JSON without creating a DTO class in advance? How might it look?
sobes.tech AI
Answer from AI
Yes, it is possible to parse JSON without creating a DTO class beforehand, using dynamic data structures such as Map or JsonNode (in Jackson).
Example with Jackson:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
String json = "{\"name\":\"Ivan\", \"age\":30}";
ObjectMapper mapper = new ObjectMapper();
try {
JsonNode node = mapper.readTree(json);
String name = node.get("name").asText();
int age = node.get("age").asInt();
System.out.println("Name: " + name + ", Age: " + age);
} catch (Exception e) {
e.printStackTrace();
}
Or using Map:
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
String json = "{\"name\":\"Ivan\", \"age\":30}";
ObjectMapper mapper = new ObjectMapper();
try {
Map<String, Object> map = mapper.readValue(json, new TypeReference<Map<String, Object>>() {});
System.out.println("Name: " + map.get("name"));
System.out.println("Age: " + map.get("age"));
} catch (Exception e) {
e.printStackTrace();
}
This approach is convenient when the JSON structure is unknown in advance or too dynamic.