Я всегда использую InputStream, FileReader и Object mapper by com.faster xml .jackson.databind
Здесь метод для получения простой JSON строки из вашего ресурса:
public String getJsonFromResource(String resource) {
StringBuilder json = new StringBuilder();
try (FileReader fileReader = new FileReader(YOURCLASS.class.getResource(resource).getFile())) {
BufferedReader reader = new BufferedReader(fileReader);
String line;
while((line = reader.readLine()) != null) {
json.append(line);
}
} catch(IOException e) {
e.printStackTrace();
}
return json.toString();
}
А вот метод для сопоставления JSON как объекта:
public YourObject getYourObject(String plainJson) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
YourObject yourObject = objectMapper.readValue(plainJson, YourObject.class);
return yourObject;
}
// РЕДАКТИРОВАТЬ:
Чтобы получить объект, хранящийся в поле в другом объекте Вам просто нужно создать класс java с полями специфицированного c. Например:
public class YourObject {
private YourSecondObject yourSecondObject;
}
И объектный картограф должен делать все автоматически.