[英]Java / JSON - Generic Deserializer
我想要实现的是:
当一种新型的JSON对象流出现时,我可以为每种类型的流运行CREATE TABLE,但是我不想做任何代码更改。
换句话说,我希望能够在Config文件中定义Java类。
{“ studentName”:“ string”,“ studentRollNumber”:“ integer”,“ studentGrade”:“ integer”,“ studentPhoneNumber”:“ string”}
现在,如果第二个流像这样进来:
{“ teacherName”:“ string”,“ teacherEmployeeId”:“ integer”,“ teacherPhoneNumber”:“ integer”,“ teacherAddress”:“ string”}
我不想更改代码。
我可以将可能性限制为4种基本数据类型。
我可能有类似的规则
{“ excludeIf”:{“ columnName”:“等级”,“ condition”:“等于”,“ value”:“ 10”}
但是,不必担心现在的排除规则,而将重点放在如何从配置文件重构JAVA类,然后将JSON流反序列化为该类的对象中。
我看到Gson 2.0+提供了转换通用地图的功能https://stackoverflow.com/a/20442943/429218
我正在寻找更多选项来在Java中动态构造一个类并向其中反序列化JSON流。
谢谢
这似乎在运行时中,应用程序不知道JSON格式,但需要查找值和键来创建表并将数据放入db中。 请参考Java解析Json而不了解结构 。 这将为您提供以通用方式进行操作的想法。 但是,您需要使用if语句编写更多代码,以便在应用程序发现新的和不存在的内容时自动创建表。 但是,这是@Jorge Campos所说的糟糕的设计 。 在现实世界中,应用程序将具有合同,即客户端和服务器。 通用方式会影响性能以及大量垃圾回收的CPU使用率。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.