Прочитать файл JSON, используя JACKSON - PullRequest
0 голосов
/ 12 мая 2018

Я хочу прочитать полученный файл JSON.

Это форма файла JSON:

{
    "name": "list_name"
    "items": [
        {
            "id": 4
        },
        {
            "id": 3
        },
        {
            "id": 2
        },
    ]
} 

Я хочу проанализировать этот JSON, представляющий список фильмов, и идентификаторы фильмов.Я хочу извлечь идентификаторы и имя.

@PUT
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
public Response deleteMoviesFromList2(@Context HttpServletRequest req) Long movieListId) {
    Long userId = getLoggedUser(req);
    getLoggedUser(req);

    final String json = "some JSON string";
    final ObjectMapper mapper = new ObjectMapper();


    return buildResponse(listMovieService.remove(¿?));
}

Я хочу извлечь идентификаторы, но понятия не имею, как это сделать.

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Если у вас определен класс фильма, например:

class Movie {
    String id;
    //getters
    //setters
}

и класс списка фильмов:

class MovieList {
    String name;
    List<Movie> items;
    //getters
    //setters
}

Тогда вы можете использовать объектный преобразователь с inputStream: *В readValue 1007 *

try(InputStream fileStream = new FileInputStream("movielist.json")) {
    MovieList list = mapper.readValue(fileStream, MovieList.class);
}

ObjectMapper имеется перегруженная версия, которая принимает входной поток, и это та, которая использовалась выше.

0 голосов
/ 12 мая 2018

Вы можете преобразовать строку json, используя класс ObjectMapper следующим образом.

ObjectMapper objectMapper = new ObjectMapper();

String carJson =
    "{ \"brand\" : \"Mercedes\", \"doors\" : 5 }";

try {
    Car car = objectMapper.readValue(carJson, Car.class);

    System.out.println("car brand = " + car.getBrand());
    System.out.println("car doors = " + car.getDoors());
} catch (IOException e) {
    e.printStackTrace();
}

Здесь вы можете заменить класс Car вашим собственным классом Movie, и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...