gpt4 book ai didi

java - 如何使用 Jackson 将 JSON 反序列化为忽略 key 的对象?

转载 作者:行者123 更新时间:2023-11-29 07:48:14 27 4
gpt4 key购买 nike

假设我有一个 JSON:

{

"MovieCount": 153,
"MoviesList": [{...},{...},...]
}

我得到了:

mapper.readValue(moviesListArrayString, new TypeReference<List<Movie>>(){});

但是当 moviesListArrayString 是:

[{...},{...},...]

如果我的 String 是原始 JSON,我如何告诉 Jackson 忽略 MovieCount 并反序列化 < em>电影列表?

最佳答案

我会创建一个具有两个属性的包装器对象:

  • Number movieCount
  • List<Movie> moviesList

然后读取值为YourWrapperObject.class并用 moviesList 做任何你需要做的事属性值,同时忽略 moviecount属性(property)。

快速、丑陋但实用的示例

package test;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {

public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();

String json = "{\"MovieCount\": 153,\"MoviesList\": [{},{}]}";
try {
List<Movie> movies = ((MovieWrapper) mapper.readValue(json, MovieWrapper.class)).moviesList;
System.out.println(movies.size());
}
catch (Throwable t) {
t.printStackTrace();
}

}

static class MovieWrapper {

@JsonProperty(value = "MovieCount")
int movieCount;
@JsonProperty(value = "MoviesList")
List<Movie> moviesList;
}

static class Movie {

}

}

输出

2

关于java - 如何使用 Jackson 将 JSON 反序列化为忽略 key 的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23522586/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com