java - Java Spring,解组动态json
问题描述
我正在尝试解组来自服务器的 json 响应。但我想知道当 json 响应发生变化时使用哪种方法是最好的方法。
例如,如果我有这样的 json 响应:
{
"name": "John",
"last_name": "John Last name",
"date_of_birth": "01.01.1990"
}
使用杰克逊,我可以将 json 对象反序列化为 Person.class,如下所示:
@NoARgsConstructor
@Setter
public class Person(){
private String name;
private String lastName;
private String dateOfBirth;
}
但是如果 json 结构发生了变化,现在人的属性进入了一个人对象。
{
"person": {
"name": "John",
"last_name": "John Last name",
"date_of_birth": "01.01.1990"
}
}
避免这些事情或避免这些问题的最佳方法是什么?是否有任何可能的解决方案或方法可以在 java spring 中实现?
解决方案
自己在 JSON 中搜索怎么样?
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
public class Foo {
public static void main(String args[]) throws Exception {
String jsonString = "{\"foo\":\"bar\"}";
ObjectMapper mapper = new ObjectMapper();
ObjectNode node = mapper.readValue(jsonString, ObjectNode.class);
if(node.has("foo")) {
System.out.println("foo: " + node.get("foo"));
}
}
}
推荐阅读
- javascript - 在 tabler-react TabbedCard 中包含可视化
- c# - 为什么我不能创建一个大小为 int.MaxValue 的数组?
- javascript - 为什么 JavaScript 代码没有改变值?
- c# - 如何为 EF Core 创建可重用的“包含”表达式
- android - 是否可以在后台播放来自android警报管理器回调的声音?
- ios - 如何在 Siri 中为给定的 IntentKit 域设置我的应用程序默认值?
- webpack - 如何修复 html 部分的热重载
- javascript - 有没有办法在 discord.js 中发出 ping 命令?
- node.js - 使用 neon 和 rust 的异步类中的生命周期问题
- amazon-dynamodb - aws cdk 是否允许更新 cloudformation 堆栈中导入的 aws dynamodb 表