我正在努力实现的是:
当一种新类型的JSON对象流出现时,我可以为每种类型的流运行CREATE TABLE,但我不想做任何代码更改。
换句话说,我希望能够在配置文件中定义Java类。
{“studentName”:“string”,“studentRollNumber”:“integer”,“studentGrade”:“integer”,“studentPhoneNumber”:“string”}
现在,如果第二条流进来,比如:
{“teacherName”:“string”,“teacherEmployeeId”:“integer”,“teacherPhoneNumber”:“integer”,“teacherAddress”:“string”}
我不想更改代码。
我可以将可能性限制为4种基本数据类型。
我可能有这样的规则
{“excludeIf”:{“columnName”:“grade”,“condition”:“equals”,“value”:“10”}
但是现在我们不要担心排除规则,而要关注如何从Config File重构JAVA类,然后反序列化JSON流到该类的对象中。
我看到Gson 2.0提供了转换通用地图的功能https://stackoverflow.com/a/20442943/429218
我正在寻找更多的选项来动态构建Java中的类,并反序列化JSON流。
谢谢
这似乎是在运行时,应用程序不知道JSON格式,但需要找到值和键来创建表并将数据放入数据库。请参考在不了解结构的情况下在Java中解析Json。这将给你一个通用方法的想法。然而,如果应用程序发现新的和不存在的内容,您需要使用if语句编写更多代码来自动创建表。然而,正如@Jorge Campos所说,这是一个糟糕的设计。在现实世界中,应用程序将有一个契约,即客户端和服务器。以常规方式执行会影响垃圾收集的性能和大量cpu利用率。
问题内容: 我对WCF有点陌生,将尝试清楚地描述我要做什么。 我有一个使用JSON请求的WCF Web服务。我在大多数情况下都可以很好地发送/接收JSON。例如,以下代码可以正常运行,并且符合预期。 JSON已发送: WCF: 这将按预期返回带有“ Dave”的JSON对象。问题是我无法始终保证我收到的JSON与我的DataContract中的成员完全匹配。例如,JSON: 由于大小写不匹配,将无
我有一个简单的问题,假设我有这个json 以这种方式映射: 我想知道是否可以通过使用一些自定义setter/注释或其他东西在内部对象中保存一个外部字段: PS:由于json的复杂性,使用自定义反序列化是我最后的选择
我对解析json有一个问题。它有一个日期为exapmle-"2014-01-07"。当它解析并成为createUserRequest.getBirthday()时,它包含-"2014-01-07T04:00:00.000 04:00"。我需要它在createUserRequest对象中,然后我会用另一个对象断言它。问题是如何得到“2014-01-07”? 在CreateUserRequest中,我
问题内容: 我是C ++的新手。使用序列化和反序列化类型数据的最简单方法是什么。我发现了一些使用示例,但它们对我来说是晦涩的。 问题答案: 请注意,将键解释为路径,例如,将对“ ab” =“ z”放置将创建{“ a”:{“ b”:“ z”}} JSON,而不是{“ ab”:“ z”} 。否则,使用是微不足道的。这是一个小例子。
问题内容: 我们使用Jackson 1.9.1对与Java对象之间的JSON请求响应字符串进行序列化和反序列化。原始Java类型,集合类型和自定义对象都可以(反)序列化而不会出现问题。但是,尝试将JSON字符串反序列化为Java枚举时遇到问题。JSON字符串的序列化方式如下: wt的Java类型如下所示: 我在SO上提到了this,this和this,并提出了重量单位的枚举,如下所示: 问题是,每
如何将jackson JSON映射器与Java 8 LocalDateTime一起使用? JSONMappingException:无法从JSON字符串实例化类型[simple type,class java.time.LocalDateTime]的值;没有单字符串构造函数/工厂方法(通过引用链:mydto[“field1”]->subdto[“date”])