我想要实现的是:
- 我们有一个 JSON 对象流进来。
- 我想从 JSON 重建一个 Java 对象。
- 我想应用转换(例如更改字符串格式并在满足某些条件时拒绝对象,例如 'isToBeConsumed' == false 并且可能将层次结构从嵌套扁平化为线性)
- 我希望能够将 JSON 对象的值存储到数据库中。
当一种新类型的 JSON 对象流出现时,我可以为每种类型的 Stream 运行 CREATE TABLE 但我不想做任何代码更改。
换句话说,我希望能够在配置文件中定义一个 Java 类。
{"studentName":"string", "studentRollNumber":"integer", "studentGrade":"integer", "studentPhoneNumber":"string"}
现在,如果第二个流像这样进来:
{"teacherName":"string", "teacherEmployeeId":"integer", "teacherPhoneNumber":"integer", "teacherAddress":"string"}
我不想更改代码。
我可以将可能性限制为 4 种基本数据类型。
我可能有这样的规则
{“excludeIf”:{“columnName”:“等级”,“条件”:“等于”,“值”:“10”}
但是现在让我们不要担心排除规则,而是关注如何从配置文件重建 JAVA 类,然后将 JSON 流反序列化为该类的对象。
我看到 Gson 2.0+ 提供了转换通用地图的功能https://stackoverflow.com/a/20442943/429218
我正在寻找更多在 Java 中动态构造类并将 JSON 流反序列化到其中的选项。
谢谢