如何将JSON请求体转换为基于Avro模式的Java类?
我有一个Kotlin Gradle Spring引导和Spring Webflux应用程序,它接受JSON作为其请求主体。我有一个如何将JSON请求体转换为基于Avro模式的Java类?,java,json,avro,openapi,Java,Json,Avro,Openapi,我有一个Kotlin Gradle Spring引导和Spring Webflux应用程序,它接受JSON作为其请求主体。我有一个openapi生成的Java类,JSON请求主体可以被转换到该类中 另一方面,我还有一个Avro模式,它与openapi相同,只是字段名已经清理。JSON请求主体具有名称以特殊字符开头的字段,例如$device\u version,+ip\u address,~ country。因此,在Avro模式中,我删除了它们,因为Avro只允许字段名以字母或下划线开头 从JSO
openapi
生成的Java类,JSON请求主体可以被转换到该类中
另一方面,我还有一个Avro模式,它与
openapi
相同,只是字段名已经清理。JSON请求主体具有名称以特殊字符开头的字段,例如$device\u version
,+ip\u address
,~ country
。因此,在Avro模式中,我删除了它们,因为Avro只允许字段名以字母或下划线开头
从JSON请求主体转换为openapi
生成的Java类没有问题,但是,由于字段名的原因,将其转换为Avro模式生成的Java类是一个问题
我的意思是,我可以手动设置字段,但是JSON对象非常大
是否有一个优雅而快速的解决方案将由于特殊字符而包含不同字段名的JSON请求体转换为Avro模式生成的类
使用的软件包
org.hidetake.swagger.generator
(带swaggerCodeGen)org.openapitools:openapi生成器cli
com.commercehub.gradle.plugin:gradle-avro-plugin
+ip\u地址
,~国家
。我最终将json负载转换为openapi生成的java类,然后手动将其转换为avro生成的类,而不使用任何映射库。我希望能有一个快速的解决方案。Java不允许在字段上使用加号或减号,所以我不确定您是如何得到这些的