• Jackson Gson Json.simple part 2


    这篇blog介绍 Jackson 的特点和使用方法

    Jackson支持三种使用方法

    • 流API(streaming api Incremental parsing/generation)
      • JsonParse reads, JsonGenerator writes
      • 高效
      • 和part 1 json的用法类似,不好用
    • 树形模型
      • ObjectMapper用来建树,和JsonNode配合使用
    • 数据绑定
      • Json与POJO相互转换
      • 简单数据转换 简单对象是指java中的map, list等等
      • 全数据转换 自定义的javabean

        

    使用者的角度来评价这三种使用方法

    • 流模式最高效,速度快,内存占用少
    • 数据绑定最方便
    • 树形模型最灵活

    例子:

    数据绑定例子

    Javabean -> Json 

    User user = new User(); // javabean
    ObjectMapper mapper = new ObjectMapper();
    mapper.writeValue(new File("/Users/sangs/Downloads/json.txt"), user); // 写入文件
    System.out.println(mapper.writeValueAsString(user));

    Json -> Javabean

    ObjectMapper mapper = new ObjectMapper();
    User user = mapper.readValue(new File("/Users/sangs/Downloads/json.txt"), User.class);
    System.out.println(user);

    Javabean 和 Json转换相当简单,看起来也直观,仅需要一个转换器ObjectMapper

    原始数据到Json的转换

    假如我们有原始数据,我们希望能够直接使用这些数据拼成Json,这个Json以后还能被转化为javabean

    Map<String,Object> userData = new HashMap<String,Object>();
    Map<String,String> nameStruct = new HashMap<String,String>();
    nameStruct.put("first", "Joe");
    nameStruct.put("last", "Sixpack");
    userData.put("name", nameStruct);
    userData.put("gender", "MALE");
    userData.put("verified", Boolean.FALSE);
    userData.put("userImage", "Rm9vYmFyIQ==");
    mapper.writeValue(new File("user-modified.json"), userData);
  • 相关阅读:
    Linux常用命令
    Linux常用命令
    Linux常用命令
    Linux 三剑客
    Python思维导图(二)—— 数据类型
    Python思维导图(一)—— 基础
    testNg
    Linux安装Git
    本地Git绑定Github仓库
    TCP协议与UDP协议
  • 原文地址:https://www.cnblogs.com/xinsheng/p/4116788.html
Copyright © 2020-2023  润新知