Я ищу доступ к вложенному объекту JSON, который у меня есть, из запроса на отдых, чтобы сохранить его как первичный ключ в моей таблице Dynamo DB на AWS.
Объект Json имеет следующий формат:
{
"api": {
"results": 543,
"fixtures": [
{
"fixture_id": 95095,
"venue": "Estádio Rei Pelé",
"goalsHomeTeam": 1,
"goalsAwayTeam": 1,
"awayTeam": {
"logo": "https://media.api-football.com/teams/156.png",
"team_id": 156,
"team_name": "Sao Bento"
},
"event_timestamp": 1569715200,
"referee": null,
"elapsed": 90,
"score": {
"halftime": "0-0",
"penalty": null,
"fulltime": "1-1",
"extratime": null
},
"round": "Regular Season - 25",
"event_date": "2019-09-29T00:00:00+00:00",
"statusShort": "FT",
"homeTeam": {
"logo": "https://media.api-football.com/teams/146.png",
"team_id": 146,
"team_name": "CRB"
},
И я пытаюсь получить к нему доступ, используя следующий код, но я получаю NullPointerException
в строке 38, которая является строкой ниже, начиная с int fixture_id
.
Мой кодследующее:
JsonParser parser = new JsonFactory().createParser(new File("fixturesTwo.json"));
JsonNode rootNode = new ObjectMapper().readTree(parser);
Iterator<JsonNode> iter = rootNode.iterator();
ObjectNode currentNode;
while (iter.hasNext()) {
currentNode = (ObjectNode) iter.next();
int fixture_id = currentNode.path("api").findPath("fixtures").findValue("fixture_id").asInt();
int league_id = currentNode.path("api").findPath("fixtures").findValue("league_id").asInt();
try {
table.putItem(new Item().withPrimaryKey("fixture_id", fixture_id, "league_id", league_id)
.withJSON("Home Team", currentNode.path("api").findPath("fixtures").findPath("homeTeam").findValue("team_name").toString())
.withJSON("Away Team", currentNode.path("api").findPath("fixtures").findPath("awayTeam").findValue("team_name").toString()));
System.out.println("PutItem succeeded: " + fixture_id + " " + league_id);
} catch (Exception e) {
System.err.println("Unable to add: " + fixture_id);
System.err.println(e.getMessage());
break;
}
}
parser.close();
}
Я предполагаю, что это что-то похожее на то, что я делаю, я просто не могу понять, что я делаю неправильно.