【问题标题】:Declaring json object in a java model class在 java 模型类中声明 json 对象
【发布时间】:2021-08-30 13:31:59
【问题描述】:

我们可以在java模型类中声明一个json对象类型的属性吗

例如。

   public class Sample {
    private JSONobject data;
   //getters and setters
   }

这样我们可以声明一个属性吗? 如果是这样,我们是否需要添加任何额外的东西?我在填充字段时遇到了运行时异常。

【问题讨论】:

  • 请提供您遇到的异常情况。另外你为什么要将 JSONObject 声明为属性?
  • 请编辑问题,发布minimal reproducible example 并显示错误堆栈

标签: java json spring-boot class


【解决方案1】:

我还见过有人在模型中使用 JSONObject /JsonObject。

POJO(java模型对象)和DTO(JSONObject等对象)的区别请参考this,何时使用JSONObject请参考this。

所以你的问题的答案可能不是。

This answer 到序列化/反序列化应该可以帮助你更好地理解 POJO 和 JSON。

到目前为止,我只在 java 模型中看到过原始值和列表。

JSONObjects 需要反序列化为 POJO 对象(反之亦然)。 (请参考这个post 为什么使用 POJO 而不是 JSONObject)

您的代码甚至无法编译,因为它要求 JSONObject 的参数类型不属于 Java 原始值和 Java 集合的一部分。

但是,您可以争辩说您可以拥有

public class Sample<JSONobject> {
    private JSONobject data;
    //getters and setters
}

但这将是另一个对象内部的不相关对象,它在实现中没有逻辑。为获得最佳实践,最好遵循常见用法,因为许多代码库都会对 JSON 进行序列化/反序列化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 2013-10-12
    • 1970-01-01
    • 2011-04-28
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    相关资源
    最近更新 更多