簡體   English   中英

使用JACKSON讀取JSON文件

[英]Read a JSON file using JACKSON

我想讀取收到的JSON文件。

這就是JSON文件的形式:

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

我想解析表示電影列表的JSON和電影的ID。 我想提取ID和名稱。

@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(¿?));
}

我想提取ID,但是我不知道該怎么做。

您可以像這樣使用ObjectMapper類轉換json字符串。

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類,然后完成。

如果定義了電影類,例如:

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

和電影列表類:

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

然后,可以將對象映射器與inputStream一起使用:

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

ObjectMapper的readValue具有一個重載版本,該版本接受一個輸入流,而這正是上面使用的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM