【问题标题】:Can I dynamically create a Java object in the run time via JSON?我可以通过 JSON 在运行时动态创建 Java 对象吗?
【发布时间】:2012-08-03 08:43:28
【问题描述】:

例如,我有一个这样的 JSON 格式:

{"class":"MySpecialClass", "attri1":"value1", "attri2":"value2"}

我想创建一个对象,它是一个MySpecialClass 对象,并获得两个属性attri1attri2,其值为value1value2

这里是要求:

  1. 我有一个类文件,名为MySpecialClass,有attri1attri2,我可以创建这个对象,并在其中赋值吗?

  2. DONT'T有类文件MySpecialClass,我想在运行时生成它,可以这样做吗?谢谢。

【问题讨论】:

标签: java json object


【解决方案1】:

您的第一个案例使用任何 Java/JSON 解析器都是完全可行的。

您的第二种情况是可能的,但要努力。

您可以使用 字节码工程 在运行时构造类 - 例如使用Apache BCEL。请注意,JSON 将仅包含字段,而不包含行为或类型。

【讨论】:

    【解决方案2】:

    看看https://github.com/google/gson,它做你想做的事

    【讨论】:

      【解决方案3】:

      您需要一个 JSON 处理器,例如 Jackson。我不确定您是否可以通过这种方式轻松地完成第二种情况,因为您可能最好查看 JVM JavaScript 实现,除非您想进入诸如动态字节码操作之类的东西。有one in the Java6 runtime

      【讨论】:

        猜你喜欢
        • 2010-09-30
        • 2019-04-11
        • 2016-03-13
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 2018-12-05
        • 2020-04-12
        相关资源
        最近更新 更多