zoukankan      html  css  js  c++  java
  • IDEA使用GsonFormat完成JSON和JavaBean之间的转换

    原文地址:https://www.leshalv.net/posts/12625/

    前言:

      之前处理接口传来的一堆数据,用jsonObject很难受,后面就用gosn来弄,配合这个工具体验很好。

    转:

     最近一直在对接接口,上游返回的都是JSON数据,我们需要将这些数据进行保存,我们可以解析成Map通过key的方式进行获取,然后set到实体类对象中,说到这里我开始想吐了,这样就造成了代码过多,没有可读性,如果有100个值,要get100次,set100次吗?所以最简单的方式是封装成对象,通过对象操作工具进行对象中属性值的映射,但是封装对象过程又繁琐了,属性过多极大的浪费时间,记得初中历史学过的一段话,人和动物最根本的区别就是会不会制造和使用工具,大神和菜鸟之间的差距也莫非如此,废话不多说了,说说如何使用GsonFormat这个插件完成JSONJavaBean之间的转换吧!

    1.安装GsonFormat

            Ctrl+Alt+S 打开设置界面,点击Plugins ,点击Browse repositories...

            在搜索框输入GsonFormat,点击Install安装

            安装成功后,点击Restart IntelliJ IDEA重启IDEA


    2.使用GsonFormat

            首先建立一个类,Alt+S打开GsonFormat页面,将你要转换的JSON串复制进去,你可以点击右上角Format格式化一下,然后点击左下角OK

            弹出Virgo Model页面,你可以选择哪个不生成,选择数据类型,定义属性名称,点击OK

            Bean就这样生成了,同时还生成了get()set()方法

    3.如何调用

    Gson gson1 = new Gson();
    StationBean sta = gson1.fromJson(ret_parms, StationBean.class);
    if(sta.getCode()==200){
      List<EntityBean> list = sta.getEntity();
    }

    4.gson jar包 :http://repo1.maven.org/maven2/com/google/code/gson/gson/ ,可以选2.8.5的,

    ----------------------------------------------------------------2019-12-30 更新 另一种更便捷的方法,但是数据大的时候不推荐-------------------------------------------------------

    List<Map<String, Object>> maps = JSON.parseObject(res, new TypeReference<List<Map<String, Object>>>() {});   用这个可以不用写javabean,也能容易分析数据

    例子:

      String str = "{"flag": true,"code": 200,"message": "操作成功","entity": [{"aaa": "沙发上","bbb": 212312}]}";
       JSONObject retMap = JSONObject.parseObject(str);
       if(retMap.getString("code").equals("200")){
          String res = retMap.getString("entity");
          List<Map<String, Object>> maps = JSON.parseObject(res, new TypeReference<List<Map<String, Object>>>() {});
              for(Map result : maps){
                 result.get("aaa");           
                 result.get("bbb");           
          }
      }
  • 相关阅读:
    DPM(Deformable Part Model)原理详解(汇总)
    VS code配置docker的shell环境
    C++运算符重载规则
    typedef 和define的区别
    在ESP分区新建win10引导
    自动化学报投稿过程记录
    shell-grep命令详解(转)
    shell-sed命令详解(转)
    shell-命令行参数(转)
    sublimetext3-实用快捷键整理
  • 原文地址:https://www.cnblogs.com/yuanmaolin/p/11044598.html
Copyright © 2011-2022 走看看