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

删除POJO的toString()中的某些JSONObject键

穆飞龙
2023-03-14

在我的JPA POJO的toString()中,我遇到了删除一些JSONObject键的问题。我只是不想让它们显示在toString()中,同时将它们保存在POJO中,这样我就可以使用它们了。我可以设法在父实体中删除它们,但在子实体中无法这样做。下面是我在父实体中的toString()实现。

@Entity
public class MyPoJo () {
// all fields

// getters and setters

@Override
public String toString() {
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        JSONObject modifiedJSON = new JSONObject(gson.toJson(this));
        modifiedJSON.remove("batchId");
        return modifiedJSON.toString();
     }
}

我试图在我所有的子实体中做同样的事情。当我调用toString()时,batchId仅在父实体中消失。它们仍然存在于儿童中。如何删除子实体中的一些键?谢谢你。

共有1个答案

东深
2023-03-14

通过将要忽略的字段标记为@JsonIgnore,可以使用Jackson实现这一点。

@Entity
public class MyPoJo () {
// all fields
@JsonIgnore
private String batchId;

// getters and setters

@Override
public String toString() {
        // Exception handling code not added
        ObjectMapper mapper = new ObjectMapper();
        return mapper.writeValueAsString(this);
     }
}

您可以进一步移动ObjectMapper mapper=new ObjectMapper()和expection将代码处理到一个单独的类,以避免为每个toString()调用创建新的ObjectMapper对象

 类似资料:
  • 问题内容: 我正在使用net.sf.json.JSONObject创建一些要发送到前端应用程序的数据,并且正在与之交互的代码不喜欢其在每个字段名称中添加引号的方式。 例如: 产生字符串{“ JSON”:“ Hello,World”}。 我希望它返回的是{JSON:“ Hello,World”}-在“ JSON”周围没有引号。我该怎么做才能做到这一点? 问题答案: 在javadoc中说: toStr

  • 我有以下问题: 我有一个矩阵。现在,我想在矩阵的每一行中删除一个条目:在包含某个数字(比如4)的行中,我想删除带有该数字的条目,在其他行中,我只想删除最后一个元素。 如果我有矩阵 这给了 2 0 4 0 删除后应该只是 2. 0 谢谢你的帮助!

  • 问题内容: 我正在尝试从文本文件中读取文本,读取行,删除包含特定字符串的行(在这种情况下为“坏”和“顽皮”)。我写的代码是这样的: 我这样写,但没有成功。 重要的一件事是,如果文本的内容是这样的: 我不希望输出有空行。所以不喜欢: 但是像这样: 我应该从上面的代码中编辑什么? 问题答案: 您可以像这样使代码更简单,更易读 使用上下文管理器和任何。

  • 问题内容: 我正在考虑使用删除字符串中的某些字符。目前尚不清楚将要删除哪些字符(即我想删除哪些字符),但是我会假定任何字符都是有效的(例如和之类的东西,等等)。 我遇到了http://www.java-tips.org/java-se-tips/java.lang/strip-certain-characters- from-a-string.html, 但是肯定有比遍历每个字符更好的方法… 有什

  • 我有一个表格,上面有多个大陆的数据。现在我想删除每一行不是欧洲或非洲的大陆。与: 我每一排都是“欧洲”,但我想念“非洲”。有没有办法包含“或”-运算符?这对我不起作用。

  • 服务器收到了以第二个JSON为主体的请求,这是令人失望的。我注意到键被自动添加到对象中。 有没有人知道我该怎么解决这个问题?