Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JSON生成JavaPOJO并使用生成的类而不必更改代码_Java_Json_Reflection_Pojo - Fatal编程技术网

从JSON生成JavaPOJO并使用生成的类而不必更改代码

从JSON生成JavaPOJO并使用生成的类而不必更改代码,java,json,reflection,pojo,Java,Json,Reflection,Pojo,我试图从Json生成POJO,为此我找到了jsonschema2pojo 但是我希望使用从代码生成的类,而不必每次生成新类时都更改代码。 我将收到许多不同的Json,我希望在不中断程序的情况下将它们用作POJO 我还需要从每个POJO中至少访问一个可能具有不同名称的变量,因为我正在考虑使用Java反射 我想知道这是否可行,或者是否有更好的方法来实现这一点。听起来您希望所有这些都在运行时发生。也就是说,当出现新的json时,您不想停止程序、更改代码并重新启动程序 如果是这种情况,那么仅仅为了对它们

我试图从Json生成POJO,为此我找到了jsonschema2pojo

但是我希望使用从代码生成的类,而不必每次生成新类时都更改代码。 我将收到许多不同的Json,我希望在不中断程序的情况下将它们用作POJO

我还需要从每个POJO中至少访问一个可能具有不同名称的变量,因为我正在考虑使用Java反射


我想知道这是否可行,或者是否有更好的方法来实现这一点。

听起来您希望所有这些都在运行时发生。也就是说,当出现新的json时,您不想停止程序、更改代码并重新启动程序

如果是这种情况,那么仅仅为了对它们进行反射而生成类(POJO)是没有意义的。只需使用Hashmaps、GSON数据类型,或者您可以找到的任何动态处理数据的方法


可能有更好的方法来实现它,但您必须更具体地说明您正在尝试做什么。

为什么需要它或想要这样做?如果是接口,则使用开放式Api规范并生成客户端、Api和服务器接口。如果你真的想把json加载到你的应用程序中(如果它不是一个指定的接口),那么我不明白你为什么要这么做。最好在应用程序中将其作为json内容简单处理。@JasperHuzen我需要它,因为我使用的另一个API需要POJO作为参数,并且不接受json。我试图概括使用该框架构建的内容,这样就不需要每次都创建新的POJO。如果API“需要POJO”,那么这不意味着它是java接口吗?在这种情况下,API已经定义了POJO,您不必生成它们。也许您可以指定另一个API是什么?是的,我希望这些更改在运行时发生,我使用的API是Flink Datastreams,我需要创建一个数据流。我试图在一个变量上加入2个数据流,该变量将由用户以Json格式表示,例如,给定以下Json:{“id”:2,“name”:“Zebra”,“dob”:1621463843900680,“gender”:“male”}用户会说它想在变量id上加入这个Json流,在另一个变量名称上加入另一个Json流。所以我必须生成这些类,并且能够以某种方式访问生成的变量,如果您有任何建议,我将不胜感激。听起来您希望动态调用Flink。我对弗林克一无所知。这可能是也可能不是。你可以考虑问一个具体的问题,在那里显示一个烧瓶代码示例,它与一对已知的硬编码数据类型一起工作,并询问如果在运行时类/字段发生变化,你可以如何做同样的事情。在运行时,可以从JSON生成一个类,将其加载到类加载器中,然后使用反射来调用Flink API,但此时您正处于真正深刻的反射水域中。我认为框架不会影响这一点,如果我能够创建类并访问它的变量,那么这就是我所需要的。你知道你以前对Hashmaps数据类型的评论是否适用吗?谢谢不,Hashmaps或GSON数据类型可以在不创建类的情况下处理数据。