java - 如何从json树反序列化?

标签 java json jackson

假设我已经读取了 json 树。

是否可以从中反序列化(不转换回字符串)?

public class TryDeserializeNode {

   public static class MyClass {

      private int x = 11, y = 12;

      public int getX() {
         return x;
      }

      public void setX(int x) {
         this.x = x;
      }

      public int getY() {
         return y;
      }

      public void setY(int y) {
         this.y = y;
      }
   }

   public static void main(String[] args) throws IOException {

      ObjectMapper mapper = new ObjectMapper();

      MyClass myClass = new MyClass();
      String string = mapper.writeValueAsString(myClass);

      JsonNode tree = mapper.readTree(string);

      // how to deserialize from tree directly?
      // MyClass myclass2 = mapper.readValue(tree.toString(), MyClass.class);
      MyClass myclass2 = mapper.readValue(tree, MyClass.class);

   }
}

最佳答案

您可以简单地使用 treeToValue :

MyClass myclass2 = mapper.treeToValue(tree, MyClass.class);

mapper 是您的 Jackson 映射器,tree 是您的 JsonNode

关于java - 如何从json树反序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34628426/

相关文章:

java - 使用 QueryDSL 在连接子句上指定别名

java - 为什么我的 jSTL <c :if test ="(should be true)"> returning even the false items?

java - 在 Android 之外使用 Android 对象

java - 使用 Feign 客户端和证书调用 WS

javascript - 来自 javascript 的 fetch 调用无法访问 java REST 服务

json - Google 翻译 API key json 格式

java - 如何使用@RestController登录并将对象发送到angularjs

java - Jackson 通过特定键将 json 反序列化为不同的子类

java - Jackson解析Json错误,转换为java.time.LocalDateTime时发生InvalidDefinitionException

java - 使用 Jackson 与 Lombok builder 反序列化