Поскольку вы уже получаете ответ JSON, тогда рекомендую использовать
restTemplate.exchange(URL, HttpMethod.GET, requestEntity, MyPOJO.class);
вместо String.class
для определения собственного POJO на основе ответа JSON, который вы ввели в файл.json.
Удобным способом вы можете быстро и легко сгенерировать POJO для вашего JSON из: http://www.jsonschema2pojo.org/.
Так оно должно выглядеть следующим образом:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"optionChain"
})
public class MyPOJO {
@JsonProperty("optionChain")
private OptionChain optionChain;
// getters and setters
}
И еще один:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"result",
"error"
})
public class OptionChain {
@JsonProperty("result")
private List<Result> result = null;
@JsonProperty("error")
private Object error;
// getter and setters
}
И другие, как:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"expirationDate",
"hasMiniOptions",
"calls",
"puts"
})
public class Option {
@JsonProperty("expirationDate")
private Integer expirationDate;
@JsonProperty("hasMiniOptions")
private Boolean hasMiniOptions;
@JsonProperty("calls")
private List<Call> calls = null;
@JsonProperty("puts")
private List<Put> puts = null;
Так что, как только вы получите ответ как:
ResponseEntity<MyPOJO> response = restTemplate.exchange(resourceURL, HttpMethod.GET,entity, MyPOJO.class);
Тогда response.getBody будетдайте контент внутри узла optionChain, который вы ищете.Затем вы можете нормально перейти к любому нужному узлу, так как теперь у вас есть все в простых Java-объектах, и вы можете игнорировать все, что хотите, или использовать все, что вам нужно.
Используя objectMapper, вы также можете добиться того же:
ObjectMapper mapper = new ObjectMapper();
MyPojo myPojo= mapper.readValue(rawJson, MyPojo.class);