使用Jackson的树模型(
JsonNode),您既有“文字”访问器方法(“ get”)
null和“安全”访问器(“
path”),“访问”方法返回缺失值,又有“安全”访问器(“ path”),它们使您可以遍历“缺失”节点。因此,例如:
JsonNode root = mapper.readTree(inputSource);int h = root.path("response").path("history").getValueAsInt();它将返回给定路径的值,或者,如果缺少路径,则返回0(默认值)
但是更方便的是,您可以只使用JSON指针表达式:
int h = root.at("/response/history").getValueAsInt();还有其他方法,通常将结构建模为普通旧Java对象(POJO)更为方便。您的内容可能适合以下内容:
public class Wrapper { public Response response;} public class Response { public Map<String,Integer> features; // or maybe Map<String,Object> public List<HistoryItem> history;}public class HistoryItem { public MyDate date; // or just Map<String,String> // ... and so forth}如果是这样,您将遍历结果对象,就像处理任何Java对象一样。



