当前位置: 首页 > 面试题库 >

如何在Jackson JSON中从ObjectMapper直接写入JSON对象(ObjectNode)?

阳福
2023-03-14
问题内容

我正在尝试输出到Jackson JSON中的JSON对象。但是,我无法使用以下代码获取JSON对象。

public class MyClass {

        private ObjectNode jsonObj;

        public ObjectNode getJson() {
              ObjectMapper mapper = new ObjectMapper();
              // some code to generate the Object user...
              mapper.writeValue(new File("result.json"), user);
              jsonObj = mapper.createObjectNode();
              return jsonObj;
        }

}

程序运行后,该文件result.json包含正确的JSON数据。但是,jsonObj为空(jsonObj={})。我查找了ObjectMapper的Javadoc,但找不到一种简便的方法来写入ObjectNode(杰克逊中的JSON对象)。没有ObjectMapper像下面这样的方法:

public void writeValue(ObjectNode json, Object value)

如何ObjectNode直接写信给ObjectMapper


问题答案:

您需要改用ObjectMapper#valueToTree()。

这将构造等效的JSON树表示形式。功能与将值序列化为JSON并将JSON解析为树一样,但是效率更高。

如果不需要,则不需要将User对象写出到JSON文件中。

public class MyClass {

    private ObjectNode jsonObj;

    public ObjectNode getJson() {
      ObjectMapper mapper = new ObjectMapper();
      // some code to generate the Object user...
      JsonNode jsonNode = mapper.valueToTree(user);
      if (jsonNode.isObject()) {
        jsonObj = (ObjectNode) jsonNode;
        return jsonObj;
      }
      return null;
    }
}


 类似资料:
  • 基本上,我不希望在生成的JSON文件中出现任何空的JSON数组或对象。我已经使用以下方法相应地配置了ObjectMapper: 这适用于数组、集合和字符串。但是,如果我有一个空对象(=所有属性都为null或empty),它仍然会显示在生成的JSON中,如下所示:

  • 问题内容: 如何直接写入linux framebuffer? 问题答案: 看看FBIOPUT_VSCREENINFO,ioctl和mmap (我有代码,但没有此电脑,对不起) 编辑:这应该让您开始

  • 我们的客户机将在servlet上使用json对象发送请求,基于这些数据我想更新我们的数据库。 org.codehaus.jackson.jsonParseException:意外字符(“O”(代码111)):在org.codehaus.jackson.jsonParser._constructor(jsonParserminimalbase._reportExpectedChar(jsonPars

  • 问题内容: 我的项目中有一些模型类,例如,等等,它们具有多个字段及其setter-getter方法,我需要 通过套接字 与客户端和服务器之间 来回交换这些类的对象作为JSONObject 。 有什么方法可以直接从模型类的对象创建,以使对象的字段成为键,而该模型类对象的值成为此JSONObject的值。 例: 我创建JSON对象为: 这让我有点像: 请注意,在我的某些模型类中,某些属性本身 是其他模

  • 问题内容: 我正在使用ObjectMapper(https://github.com/Hearst- DD/ObjectMapper )将JSON映射到Swift对象。 说我有这个JSON结构: 我有以下Swift对象: 如何使用JSON对象中的键区分映射和映射?非常感谢! 问题答案: 细节 Xcode 10.2.1(10E1001),Swift 5 json档案 ObjectMapper示例 检

  • 我试图从json文件中获取一个对象数组,但遇到了一个问题。 我应该使用什么路径来获取项目中的所有项目(item0、item1、item2…)? 你能给我一个怎么做的建议吗。 Json 示例 从items对象中过滤item的最佳方法,但我不知道如何使用json路径。