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");           
          }
      }
  • 相关阅读:
    【第40套模拟题】【noip2011_mayan】解题报告【map】【数论】【dfs】
    【模拟题(63550802...)】解题报告【贪心】【拓扑排序】【找规律】【树相关】
    【模拟题(电子科大MaxKU)】解题报告【树形问题】【矩阵乘法】【快速幂】【数论】
    IMemoryBufferReference and IMemoryBufferByteAccess
    SoftwareBitmap and BitmapEncoder in Windows.Graphics.Imaging Namespace
    Windows UPnP APIs
    编译Android技术总结
    Windows函数转发器
    Two Ways in Delphi to Get IP Address on Android
    Delphi Call getifaddrs and freeifaddrs on Android
  • 原文地址:https://www.cnblogs.com/yuanmaolin/p/11044598.html
Copyright © 2011-2022 走看看