当前位置: 首页 > 知识库问答 >
问题:

用于表示JSON对象的通用pojo

暴才俊
2023-03-14

简单地说,我试图编写一个POJO来表示一个JSON对象,如下所示:

{
    "errorCode": "SYS101",
    "errorMessage": {
        "key1": "value1",
        "key2": "value2",
        "key3": "value3"
    }   
}

因为每个键的名称都是唯一的,而且计数可能太多,所以像下面这样写是没有用的:

public class Response {
    private String errorCode;
    private ErrorMessage errorMessage;

    public String getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(String errorCode) {
        this.errorCode = errorCode;
    }

    public ErrorMessage getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(ErrorMessage errorMessage) {
        this.errorMessage = errorMessage;
    }
}

public class ErrorMessage {

    private String key1;
    private String key2;
    private String key3;

    public String getKey1() {
        return key1;
    }

    public void setKey1(String key1) {
        this.key1 = key1;
    }

    public String getKey2() {
        return key2;
    }

    public void setKey2(String key2) {
        this.key2 = key2;
    }

    public String getKey3() {
        return key3;
    }

    public void setKey3(String key3) {
        this.key3 = key3;
    }
}

我想知道是否有一种通用的方法来编写代表JSON的POJO?

共有1个答案

吴驰
2023-03-14

也许是这样的?它不是很“泛型”,但可以添加任意多个错误消息,并且仍然保持原始JSON的结构,其中errormessage是一个对象(而不是一个数组)

public class Response {
    private String errorCode;
    private Map<String, String> errorMessage;   // JSONs are like maps with a key-value mapping

    public Response(String errorCode, String... errorMessages){   // example for a constructor with the logic to assign the errorMessages (no setters)
        this.errorCode = errorCode; 
        this.errorMessage= new HashMap<>();   // first you initialize the map
        int count =0;                         // a counter to name your "keyX" keys
        for(String msg:errorMessages){ 
           errorMessage.put("key"+(++count),msg); // and filling the map
        }          
    }
}

 类似资料:
  • 问题内容: 我正在尝试反序列化以下字符串,对于Java来说我还是有些陌生,我无法在我的一生中使用它。我现在仅尝试在对象中解码两个字符串。我的JSON和Java类如下。我得到的结果变量确定。 还有我下面的java类 请原谅我缺乏描述,但是我确信代码会有所帮助。JSON已在其他应用程序中使用,因此不可更改。 谢谢! 问题答案: 这是一些不错的JSON教程,可以帮助您。 GSON JSON格式 带有源代

  • 我在Deck类中创建一个问题对象列表。我读取Json文件并将其传递给String,然后简单地使用Gson创建对象列表。但那不起作用:/你有谢谢你的主意吗。这是我的Json文件: 这是我的问题构造器: 这是我的甲板建造师: 这是我的主要代码: res1是我以字符串格式获得的Json文件,因此res2应该包含一个与Json文件相关的对象列表,但列表中没有任何内容。

  • 问题内容: 似乎有一些用于Delphi的JSON选项-是否有推荐的库供XE2使用?我正在寻找Delphi XE2和PHP Web应用程序之间的对象共享。(以兼容的方式对PHP Web应用程序进行序列化和发布delphi对象,以及从对delphi服务器端的静态PHP调用中反序列化) 问题答案: 我知道两个图书馆。 内置库和Super Object。 我使用超级对象,因为它真的很容易使用。

  • 我是jasper的初学者,正在编写一份报告,其中我只需要在表格中存在数据时显示表格的标题。我目前在我的jrxml中有以下代码片段: 将数据写入报表的JSON如下所示: 如何仅在存在数据时显示静态标头,而在JSON中没有数据时不显示任何内容? 我已尝试添加<代码>

  • 我有如下字符串: 如何设置格式,如下所示: