• Java 使用 Jackson库 对 JavaMap 进行序列化反序列化


    最近在用 java 处理一一些东西,发现 java 对对象进行序列化反序列化比起 python 来还是有些麻烦记录一下。

    找了好几个库最后选择了 Jackson 感觉大家对它评价还不错。

    将目标从 Java 的 map object 转换成 json 对象

    Map<String, String> testDict = new HashMap<>();
    ObjectMapper M = new ObjectMapper();
    String json = "";
    JsonNode deJson = null;
    
    testDict.put("name", "piperck");
    testDict.put("age", "18");
    testDict.put("company", "NIO");
    
    // MAP COVERT TO JSON
    try {
        json = M.writeValueAsString(testDict);
    } catch (JsonProcessingException e) {
        System.out.println(e.getLocalizedMessage());
    }
    System.out.println(json);

    这里总是需要 new 一个 ObjectMapper() 对象,后续会需要使用这个对象来处理序列化和反序列化。

    这里我们将最常见的 java 的 map 类型转换成 json 。先定义一个 testDict 做字段,往里添加一些属性,最后使用 M.writeValueAsString 将其转换为 json 类型。

    writeValue 系列方法将 java 对象序列化成 json,并将 json 存储成不通的格式

    这里我们用的

    writeValueAsString 存成 String

    同样我们可以使用 readValue 系列方法将 json 对象读取成 map 回来。

    try {
        Map<String, String> map = M.readValue(json, Map.class);
        System.out.println(map);
    } catch(IOException e) {
        System.out.println(e.getLocalizedMessage());
    }

    Reference:

    https://stackoverflow.com/questions/29340383/convert-map-to-json-using-jackson    Convert Map to JSON using Jackson

    https://www.mkyong.com/java/how-to-convert-java-map-to-from-json-jackson/    Jackson – Convert JSON string to Map

    https://stackoverflow.com/questions/1149703/how-can-i-convert-a-stack-trace-to-a-string    How can I convert a stack trace to a string?

    https://www.ibm.com/developerworks/cn/java/jackson-advanced-application/index.html    Jackson 框架的高阶应用

  • 相关阅读:
    Django的中间件
    Django的Models(三)
    多个SSH key对应多个Host: Github, Bitbucket
    最简单的私有库方法
    Swift compile slow 编译慢问题
    Hide Xcode8 strange log.
    cocoapods 终极方案
    "Mac OS X"想要进行更改。键入管理员的名称和密码以允许执行此操作("Mac OS X"想使用系统钥匙串)
    Xcode7下载地址
    Xcode8安装不成功, 需要升级系统. The operation couldn't be completed. cpio read error
  • 原文地址:https://www.cnblogs.com/piperck/p/11806141.html
Copyright © 2020-2023  润新知