我有一个如下所示的 JSON:
{
"name": "John",
"age": 29,
"city": "Bangalore",
"country": "India"
}
但是根据请求,我只需要过滤名称和城市。我的回答应该如下:
{
"name": "John",
"city": "Bangalore"
}
我们如何使用 Java 代码实现这一点?
至少有 3 种与库无关的方法可以做到这一点:
Request
) -> 将其转换为 Response
对象 -> 序列化响应public class Request {
private String name;
private int age;
private String city;
private String country;
}
public class Response {
private String name;
private String city;
}
使用一个类(参见上面的
Request
示例,但选择更好的名称)与自定义序列化器/反序列化器。反序列化器将读取所有属性,序列化器将仅写入您需要的属性 - name
和 city
。
使用通用对象 -
Map<String, Object>
。反序列化为 Map
-> 从中删除不需要的属性 (age
, country
) -> 序列化映射。