You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Jackson解析接收的JSON,提取电影列表名称及影片ID?

解析JSON并提取电影列表信息的JAX-RS实现方案

我来帮你搞定这个JSON解析的问题,用Jackson配合JAX-RS的自动序列化特性就能轻松解决,咱们一步步来:

1. 创建匹配JSON结构的Java实体类

首先定义和目标JSON结构对应的POJO(普通Java对象),这样Jackson可以直接把JSON请求体映射成Java对象,省去手动解析的麻烦:

// 对应外层的电影列表对象
public class MovieListRequest {
    private String name;
    private List<MovieItem> items;

    // 生成getter和setter方法
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public List<MovieItem> getItems() { return items; }
    public void setItems(List<MovieItem> items) { this.items = items; }
}

// 对应items数组里的单个电影项
public class MovieItem {
    private Long id;

    // 生成getter和setter方法
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
}

2. 修改JAX-RS接口方法

你原来手动处理JSON字符串的方式没必要,JAX-RS会自动把请求体的JSON反序列化为咱们定义的MovieListRequest对象。修改后的方法如下:

import java.util.List;
import java.util.stream.Collectors;

@PUT 
@Path("/") 
@Consumes(MediaType.APPLICATION_JSON) 
public Response deleteMoviesFromList2(@Context HttpServletRequest req, 
                                      Long movieListId,
                                      MovieListRequest movieListRequest) { // 新增该参数,框架自动注入JSON映射后的对象
    Long userId = getLoggedUser(req);
    
    // 提取列表名称
    String listName = movieListRequest.getName();
    // 提取所有影片ID
    List<Long> movieIds = movieListRequest.getItems().stream()
                                          .map(MovieItem::getId)
                                          .collect(Collectors.toList());
    
    // 根据你的service方法参数调整传入内容,比如把userId、movieListId、movieIds等传进去
    return buildResponse(listMovieService.remove(userId, movieListId, movieIds, listName));
}

3. 方案优势

  • 简洁可靠:借助框架自动序列化,避免手动解析JSON字符串的繁琐和出错风险
  • 可读性强:实体类清晰对应JSON结构,后续维护和修改都更直观
  • 扩展性好:如果JSON结构后续有变动,只需要调整实体类即可适配

如果你的listMovieService.remove()方法支持直接接收MovieListRequest对象,直接传进去就行,灵活调整参数即可。

内容的提问来源于stack exchange,提问作者Arnau Van Boschken ArnauB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:29:41