以下是json中的响应:
{ "info" : { "risk" : <object>, "operations" : <array>, "status" : <string> } }
如何在一个类中Map这个?下面是我尝试的类Map:
public class Info { private Object risk; private Array operations; private String status; }
e1xvtsh31#
尝试使用jackson数据绑定https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind 采用以下方法:
public static Object convertJsonStringToObject(String jsonString, Class classToConvert) { try { return new ObjectMapper().readValue(jsonString, classToConvert); } catch (JsonProcessingException e) { LOG.error("Error when convert object from json.", e.getMessage(), e.getCause()); throw new RuntimeException(e); } }
Info info = (Info) JsonConverter.convertJsonStringToObject(stringJson, Info.class);
3zwtqj6y2#
您的类定义如下:
public class A { private Info info; } public class Info { private YourClass risk; private List<YourAnotherClass> operations; private String status; }
您可以使用jackson反序列化json字符串。注意你的目标类类型应该是 A.class .如果您不知道json字符串的内容,可以使用 JsonNode 迭代它。例如:
A.class
JsonNode
public static void iterate(JsonNode node) { if (node.isValueNode()) { System.out.println(node.toString()); return; } if (node.isObject()) { Iterator<Entry<String, JsonNode>> it = node.fields(); while (it.hasNext()) { Entry<String, JsonNode> entry = it.next(); iterate(entry.getValue()); } } if (node.isArray()) { Iterator<JsonNode> it = node.iterator(); while (it.hasNext()) { iterate(it.next()); } } } public static void main(String[] args) { try { String jsonStr = ""; // your input string ObjectMapper objectMapper = new ObjectMapper(); JsonNode node = objectMapper.readTree(jsonStr); iterate(node); } catch (Exception e) { e.printStackTrace(); } }
2条答案
按热度按时间e1xvtsh31#
尝试使用jackson数据绑定https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind 采用以下方法:
3zwtqj6y2#
您的类定义如下:
您可以使用jackson反序列化json字符串。注意你的目标类类型应该是
A.class
.如果您不知道json字符串的内容,可以使用
JsonNode
迭代它。例如: