FsonFormat Eclipse Plugin 一键解决复杂JSON ,快速实现JavaBean

2023-10-26

简介

    当开发人员或者测试人员在开发或者测试接口中,去获取到接口返回的结果值时,都要通过JSONObjectJSONArray解析json结构,然后再通过For循环遍历相应的Key,最后把value值进行App展示或者校验是否预期结果,编写的代码较多,如果返回的结果结构相对复杂(多层结构,对象套数组,数组套对象,对象套对象等等数据结构),那么使用For循环以及IF使用的话,代码量则是以2的米次方码的。所以为了解决这个问题而开发出的这款插件,只需要通过...(点点点)的形式就可以拿到你想要获得到的value(一行代码即可)值,而不再需要多层嵌套for循环来获取,这样开发人员或者测试人员就很大程度上减少了编码量,使得代码变得更加简洁。


作用

      1FsonFormat是一款专为Eclipse打造的快速搞定JSON数据解析的插件,根据Gson库使用的要求,JSON结构格式解析成实体类,通过对象(点点点)来直接调用方法

      2FsonFormat插件采用高内聚低耦合设计模式。

 

应用范围

      1、项目开发

      2App开发

     3、接口测试

  只要涉及到接口相关的都可以应用FsonFormat插件。

 

 FsonFormat 插件 下载地址

       https://download.csdn.net/download/fzg1234567890/10277400

        插件安装,在文章下面,有图解展示如何在Eclispe安装此插件


 适用人群

    1、开发人员

    2、测试人员


功能介绍

    1、JSONJava实体类

    2、JSON格式化功能

    3、自动分辨java项目和maven项目生成对应的代码

    4、支持修改JSON字段类型功能

    5、代码高亮显示(以不同颜色代表不同的类型)

    6、测试接口代码生成DEMO功能

    7、支持打开文件目录功能

    8、导出JSON格式json文件(用来mock接口)

    9、获取当前IP地址

    10、支持eclispe快捷键

    11、智能JSON纠错


调用方式

    FsonFormat提供了5种方式调用(如图

        1、界面菜单栏增加了FsonFormat menu菜单项里点击即可调出插件界面

        2、工具栏增加了FsonFormat 工具快捷方式

        3、java文件右键弹出菜单,即可以看到FsonFormat选项

        4、在编辑区域右键弹出菜单,即可以看到FsonFormat选项

        5、快捷键 Alt+insert-->Fsonformat 

    


Demo

以一个这样返回结果的例子,演示一下,用JSONObject解析 和 FsonFormat插件对比效果

{"company":"QQ","numbers":"720","peopleArray":[{"name":"fffggg","Sex":true,"address":[{"city":"eee","country":"sds"}]},{"name":"lw","Sex":false,"address":[{"city":"sss","country":"eee"}]}]}



之前的解析是用JSONObject以及JSONArray解析步骤


JSONObject object = new JSONObject(testJsonStr);

     System.out.println(object.get("company").toString());

     System.out.println(object.get("numbers").toString());

     JSONArray array = (JSONArray) object.get("peopleArray");

     for(int i=0;i<array.length();i++){

          JSONObject key = (JSONObject)array.get(i);

          String name = key.get("name").toString();

          String sex = key.get("Sex").toString();

          System.out.println("get peopleArray name = "+name);

          System.out.println("get peopleArray sex = "+sex);

          JSONArray addressArray = (JSONArray)key.get("address");

               for(int j=0; j<addressArray.length();j++){

                    JSONObject addressKey = (JSONObject)addressArray.get(j);

                    String city = addressKey.get("city").toString();

                    String country = addressKey.get("country").toString();

                    System.out.println("get peopleArray  address city = "+city);

                    System.out.println("get peopleArray  address country= "+country);

               }

     }


再来看看FsonFormat解析步骤

    


一句话就可以将复杂的JSON数据解析成相应的Bean对象

Query query = new Gson().fromJson(testJsonStr,Query.class);


query.getCompany()

query.getNumbers()

query.getPeopleArray().get(0).getName()

query.getPeopleArray().get(0).getSex()

query.getPeopleArray().get(0).getAddress().get(0).getCity()

query.getPeopleArray().get(0).getAddress().get(0).getCountry()

 

对比效果显而意见,FsonFormat插件调用就非常简洁了,而且可以单独调用某一个去验证,不用再去写一堆代码了,体现出它高内聚低耦合设计理念。


主界面介绍


接口测试代码生成界面


点击generating code会自动生成测试接口代码testQueryBean文件,显示了该接口所有key使用方式


当我们想保存json数据用来mock时,插件也为用户提供了导出json文件功能,目录为当前javabean类文件的目下 ,如图

操作-》export json选项


Json文件路径保存在当前类文件目录下


FsonFormat插件可以随时修改数据类型映射到类文件里

修改前


修改后


智能纠错


安装过程,视图演示








其他功能就暂无介绍了,在使用中寻找快乐。

Tips

         IdeaAndroid studio已经有了类似插件名为GsonFormat,网上也有众多资源关于此插件的使用,FsonFormat是为了Eclipsse工具而开发的,实现了GsonFormat所有功能的基础之上,同时又实现一些非常好用的功能。


  FsonFormat专为使用Eclipse工具的开发人员或测试人员开发的一款插件。



那位回复者,数组不能套数组的,数组套对象是可以的,请看我给你的截图



java 转 json



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FsonFormat Eclipse Plugin 一键解决复杂JSON ,快速实现JavaBean 的相关文章

  • 如何使用各个属性中的所有验证属性序列化模型?

    上下文 使用 mvc 控制器方法创建 jsonP 服务 该服务提供表单字段的定义 包括所有验证规则 我的问题是我不知道如何序列化验证属性 我更喜欢验证属性的格式与在常规 Mvc 视图中使用不显眼的验证时由 Razor 序列化的格式相同 为了
  • 在 PowerShell 中解析大型 JSON 文件

    Context 在这篇文章中 ConvertFrom Json 大文件 https stackoverflow com q 76784490 268581 我询问有关反序列化 1 2GB JSON 文件的问题 这个答案发布在那里 https
  • JSON.stringify / 解析带有引号的奇怪内容

    我在解析一些包含引号的 JSON 时遇到了一个奇怪的小问题 我正在使用本机 JSON stringify 和 JSON parse 函数来执行此操作 如果我将一个对象 其中有引号的对象 字符串化 它们就会像人们所期望的那样被转义 如果我然后
  • 在 Symfony2 中使用 json 数据水合实体

    有没有办法用 Symfony2 中传入请求的 json 数据来水合实体 我以为有类似的东西 Form bindRequest 但我找不到任何东西 如果能将这个功能与 knockout js 等库一起使用 那就太好了 如果您需要从 JSON
  • 优化Gson反序列化

    优化反序列化的最佳方法是什么 我目前正在使用标准 Gson toJson 和 Gson fromJson 方法来序列化和反序列化一些复杂对象 我希望尽可能减少反序列化时间 如果重要的话 我的最复杂的对象包含 43 个变量 如果你想使用 Gs
  • 身份验证错误:无法响应以下任何质询:{} Android - 401 Unauthorized

    身份验证错误 无法响应以下任何质询 Android 401 Unauthorized 我已从此链接参考在 Android 上使用 HttpPost 和 DefaultHttpClient 时出现身份验证错误 https stackoverf
  • 启用 WCF 数据服务默认接受/返回 JSON

    我有一个 WCF 数据服务 我希望默认情况下为所有操作返回 JSON 我可以在配置 通过服务属性中设置它吗 为了通过 format 标签启用 json 如下所示 host 8038 YourService svc format json 将
  • 未捕获(承诺中)语法错误:获取函数中出现意外的标记'

    我有几个结构如下的 JSON 文件 我们称之为 info json data title Job company Company past fulltime Former Company intern Women IT Priority 5
  • GSON 解析空日期字段时抛出异常

    我正在使用 GSON 反序列化一些 JSON JSON 是 employee id 297 surname Maynard givenname Ron lastlogin 员工对象有一个日期字段lastlogin public class
  • 使用 JSON 响应

    执行 ajax 请求后 我从服务器收到以下响应 error false success true 我的ajax代码 ajax url update type post data this serialize success function
  • php 解码 JSON 获取值

    我正在尝试解码 JSON 格式 我要发送的是 id 123 name John surname Smith department 3 我正在通过 Postman 发送带有数据的 POST 如图所示 所以 这是我想要解码的数据 data se
  • 将多嵌套 dict/json 加载到 pandas 中

    我正在尝试加载一个非常令人困惑的多重嵌套JSON变成熊猫 我已经在使用了json 规范化 http pandas pydata org pandas docs stable reference api pandas io json json
  • 如何在Go中从interface{}解组到interface{}

    我的系统中有多个通过 RPC 进行通信的节点 我正在尝试通过 RPC 将 map string interface 发送到另一个节点 发送方使用 json Marshal 接收方使用 json Unmarshal 来获取地图 假设在发送方
  • 如何使用 Node JS 对包含小数/尾随零的数据生成哈希

    在尝试验证 Node JS 中的 Authorize net webhook 通知时 我遇到了以下与小数 尾随零有关的问题 Authorize net 使用 HMAC SHA512 以及 Webhook 通知正文和商家的签名密钥形成哈希 该
  • LinkedIn OAuth 缺少必需参数“client_id”

    我正在使用 LinkedIn API 并尝试发出请求 但是当我尝试获取 accesstoken 时 我在 json 打印中收到以下错误 Array error gt missing parameter error description g
  • 使用可编码的值,有时是 Int,有时是 String

    我有一个 API 有时会返回特定的键值 在本例中id 在 JSON 中作为 Int 有时它会以 String 的形式返回相同的键值 如何使用 codable 来解析该 JSON struct GeneralProduct Codable v
  • 自动完成请求/服务器响应是什么样的?

    这似乎是一个黑洞 经过一个小时的搜索jQuery用户界面 http en wikipedia org wiki JQuery UI网站 Stack Overflow 和谷歌搜索 我还没有找到如何编写的最基本信息服务器端自动完成的 向服务器传
  • 在 Android 中不断更新新的 JSON

    我有不断变化的 JSON 我需要在 android 中不断更新更改 我该怎么做 我的Android代码是 r getImage JSONObject data new JSONObject r String a data getString
  • 我可以将 RegExp 和 Function 存储在 JSON 中吗?

    给定一个像这样的块 var foo regexp http fun function 将其存储在 JSON 中的正确方法是什么 您必须将 RegExp 作为字符串存储在 JSON 对象中 然后您可以从字符串构造一个 RegExp 对象 JS
  • 如何在 Java 中将 hashmap 转换为 JSON 对象 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何在 Java 中将 hashmap 转换或转换为 JSON 对象 然后再次将 JSON 对象转换为 JSON 字符串 您可以使用 new

随机推荐

  • 一篇搞定dockerfile定制镜像过程

    一 定制镜像的两种方法 1 docker commit 通过已有容器创建镜像 提交容器快照作为镜像 不推荐 2 docker build 就是本文着重讲的dockerfile创建镜像方式 推荐 docker commit无法还原镜像制作过程
  • 【Linux学习】epoll详解

    什么是epoll epoll是什么 按照man手册的说法 是为处理大批量句柄而作了改进的poll 当然 这不是2 6内核才有的 它是在2 5 44内核中被引进的 epoll 4 is a new API introduced in Linu
  • centos7运行vue项目问题汇总

    一 node踩坑之This is probably not a problem with npm There is likely additional logging output above 错误 解决步骤 1 可能由于种种版本更新的原因
  • windbg 常用命令详解

    一 1 address eax 查看对应内存页的属性 2 vertarget 显示当前进程的大致信息 3 peb 显示process Environment Block 4 lmvm 可以查看任意一个dll的详细信息 例如 我们查看cyus
  • java中List按照指定字段排序工具类

    文章标题 java中List按照指定字段排序工具类 文章地址 http blog csdn net 5iasp article details 17717179 包括如下几个类 1 实体类 package com newyear wish
  • 【C语言】螺旋数组

    螺旋数组的打印 程序C语言代码 更改宏定义的数值即可实现螺旋数组行列的变化 include stdio h define ROW 5 宏定义行 define COL 5 宏定义列 void main int arr ROW COL 0 in
  • Python Decorators(二):Decorator参数

    Python Decorators II Decorator Arguments October 19 2008 本文是Python 3 Patterns Idioms Python3之模式和用法 一书的章节节选第二部分 点击这里阅读第一部
  • Kotlin数据类型(一:数据类型)

    一 Boolean Boolean类型有两种类型的 true flase val a Boolean true val b Boolean false 二 Number数据类型 package net println kotlin auth
  • 强化学习 DQN 速成

    强化学习 DQN 速成 这是对 深度强化学习 王树森 张志华 中 DQN 部分的缩写以及部分内容的个人解读 书中的 DQN 是一个相对终极版本的存在 相信体量会比网络上其他资料要大很多 基本概念 我们通过贪吃蛇来引入几个基本概念 符号 中文
  • Flink Windows(窗口)详解

    Windows 窗口 Windows是流计算的核心 Windows将流分成有限大小的 buckets 我们可以在其上应用聚合计算 ProcessWindowFunction ReduceFunction AggregateFunction或
  • MySQL redo log和undo log

    Redo Log REDO LOG称为重做日志 当MySQL服务器意外崩溃或者宕机后 保证已经提交的事务持久化到磁盘中 持久性 InnoDB是以页为单位去操作记录的 增删改查都会加载整个页到buffer pool中 磁盘 gt 内存 事务中
  • Matlab矩阵处理

    一 通用的特殊矩阵 zero m zeros m n zero size A 产生全为零的矩阵 格式下同 ones 产生全为一的矩度阵 eye 产生单位矩阵 rand 产生在 0 1 区间均匀分布的矩阵 randn 产生均值为0 方差为1的
  • C计数问题---2023河南萌新联赛第(三)场:郑州大学

    解析 n 可以分成两个数 记录每个数的因子对数 乘起来即可 注意当因子相同时 只 1 include
  • Java文件类型校验之Apache Tika

    一 背景 判断文件类型一般可采用两种方式 1 后缀名判断 简单易操作 但无法准确判断类型 2 文件头信息判断 通常可以判断文件类型 但有些文件类型无法判断 如word和excel头信息的前几个字节是一样的 无法判断 使用apache tik
  • flink watermark 生成机制与总结

    flink watermark 生成机制与总结 watermark 介绍 watermark生成方式 watermark 的生成值算法策略 watermark策略设置代码 watermark源码分析 watermark源码调用流程debug
  • 你知道几种延迟队列的实现方案?

    在开发中 往往会遇到一些关于延时任务的需求 例如 生成订单30分钟未支付 则自动取消 生成订单60秒后 给用户发短信 对上述的任务 我们给一个专业的名字来形容 那就是延时任务 那么这里就会产生一个问题 这个延时任务和定时任务的区别究竟在哪里
  • Reid训练代码之数据集处理

    本篇文章是对yolov5 reid这篇文章训练部分的详解 该项目目录为 config reid输入大小 数据集名称 损失函数等配置 configs 训练时期超参数定义 data 存储数据集和数据处理等代码 以及yolov5类别名称等 eng
  • 怎样更改itunes备份位置_什么是iTunes备份文件?

    由于它是由Apple创建的 因此iTunes改变了用户组织和播放音乐和视频的方式 iTunes已经允许数百万用户通过iTunes Store下载他们喜爱的曲目 歌曲和视频 值得庆幸的是 iTunes拥有一个先进的备份系统 能够备份和恢复Ip
  • Android libdvm.so 与 libart.so

    Android libdvm so 与 libart so 系统升级到5 1之后 发现system lib 下面没有libdvm so了 只剩下了libart so 对于libart模式 从4 4就在Developer optins里面就可
  • FsonFormat Eclipse Plugin 一键解决复杂JSON ,快速实现JavaBean

    简介 当开发人员或者测试人员在开发或者测试接口中 去获取到接口返回的结果值时 都要通过JSONObject和JSONArray解析json结构 然后再通过For循环遍历相应的Key 最后把value值进行App展示或者校验是否预期结果 编写