对于一个软件开发人员, JSON 是最熟悉的东西之一了, 每一个开发人员基本上每一天都会跟 JSON 打交道.

作为一个大前端开发人员, 当看到从服务器返回的 JSON 数据时, 尤其是大数据量或者复杂数据结构需要解析时, 我经常会长叹一声, "唉!"

这时候, 我通常会打开自己收藏的 JSON 在线解析工具, Paste and Parse. 这样不仅多了在不同应用或者网页之间跳转的麻烦, 不要忍受数不尽的亮瞎眼的广告. 不仅累, 而且影响心情.

为什么不能不用离开 IDE, 不用打开浏览器, 不用打开新的网页就可以查看 JSON 结构呢?

为什么不能在同一个 IDE 窗口里面就可以查看格式化的 JSON, 甚至 XML/YAML/CSV 格式呢?

为什么不能在查看过格式化 JSON 之后, 就可以生成对应的 Java/Kotlin/Dart 文件呢?

更甚至, 为什么不能我不需要请求接口之后将返回结果 Copy & Paste & Parse 才能查看, 而不是我直接将请求链接跟参数输入之后, 可以直接将返回结果解析呢?

带着这样的疑虑, 再基于自身开发并部署IDEA插件的经验, 我决定自己写一个 Json Master 插件. 没错, 就是 Json Master masters JSON 的意思. 它所能做的事件, 全部都跟 JSON 有关.

Json Master 这个名字是我思考良久, 在一次晚上绕小区压马路的时候, 灵激一动想出来的名字. 想到这个名字的时候, 内心一阵窃喜, 哈哈.

再想, 它需要提供哪些功能?

  • 格式化 JSON 数据起码要有. 这个是最基本的功能. 如果输入的数据有误, 还应该提示是输入的哪个位置有问题. 这个可以作为一个插件项目的近期目标.
  • 可以将 JSON 输入成 XML/YAML/CSV 格式. 这个是偶然间我在一个有诸多广告的 JSON 在线解析的网站上遇到的. 我觉着可以添加进来. 这个可以作为一个中期目标.
  • 以及, 查看过 JSON 格式之后, 是不是可以直接生成 Java/Kotlin/Dart 文件呢? 这个也是很实用的功能.
  • 再者, 再远期一点, 是不可以输入地址跟参数, 直接解析拦截到的服务器 JSON 响应, 就像 Postman 一样?

经过两个多月的构思, 以及利用周末的时间, Json Master 插件项目终于可以发布上线了.

我把它开源到了Github 上, 项目的地址在: JsonMaster.

线上版本目前只支持初期的目标, 也就是查看格式化 JSON 字符串.

它长这个样子:

目前 Github 上面的代码已经支持 XML/YAML/CSV/Properties 格式转换, 只是还没有发布.

中期的规划是: 添加从 JSON 生成 Java/Kotlin/Dart 类.

远期的功能规划是: 拦截网络请求, 格式化 JSON 响应.

最后, 开源不易, 尤其是对于全职的开源爱好者. 需要占用不少下班以及周末时间. 如果您觉着这个项目是值得做的, 是做的有意义的, 可以通过以下方式来表达支持:

  • Share/Recommend this plugin(JsonMaster) to your friends/work mates. 向朋友或者同事推荐该插件.
  • Create PR s. 提交 PR.
  • Create Issue s. 反馈问题, 提供您的建议或者想法.

更多:

Polyglot Translators: Let's do i18n easier! 一款国际化插件小助手!

mns: Money Never Sleeps! 自己开发的一款 IDEA 插件介绍.

Json Master masters JSON!的更多相关文章

  1. [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类

    [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类 本节导读: 关于JSON序列化,不能 ...

  2. jsoncpp构造json字符串和json数组

    jsoncpp构造json字符串和json数组 参考文章:Jsoncpp的简单使用 下载json文件夹放在c++项目的include目录下,在CMakeLists中include进去,然后就可以在代码 ...

  3. hive之Json解析(普通Json和Json数组)

    一.数据准备 现准备原始json数据(test.json)如下: {"movie":"1193","rate":"5", ...

  4. .Net使用Newtonsoft.Json.dll(JSON.NET)对象序列化成json、反序列化json示例教程

    JSON作为一种轻量级的数据交换格式,简单灵活,被很多系统用来数据交互,作为一名.NET开发人员,JSON.NET无疑是最好的序列化框架,支持XML和JSON序列化,高性能,免费开源,支持LINQ查询 ...

  5. json数据格式及json校验格式化工具简单实现

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, ...

  6. Json对象与Json字符串互转(4种转换方式)

    Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: 复制代码代码如下: $.parseJS ...

  7. 使用 Json.Net 对Json文本进行 增删改查

    JSON 已经成为当前主流交互格式, 如何在C#中使用 Json.Net 对Json文本进行 增删改查呢?见如下代码 #region Create (从零创建) public static strin ...

  8. jQuery中json对象与json字符串互换

    json字符串转json对象:jQuery.parseJSON(jsonStr); json对象转json字符串:JSON.stringify(jsonObj); 根据“|”把字符串变成数组.spli ...

  9. JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString

    JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString 如下示例: 直接写的a1就是一个Json对象,a2 就是一个Json对象字符串; 通 ...

随机推荐

  1. 008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字

    008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字 关键字 关键字就是一些有特殊意义的词 之前学习的程序中涉及到的关键字 Java中 ...

  2. python中numpy.savetxt 参数

    转载:https://blog.csdn.net/qq_36535820/article/details/99543188 numpy.savetxt 参数 numpy.savetxt(fname,X ...

  3. 如何选择JVM垃圾回收器?

    明确垃圾回收器组合 -XX:+UseSerialGC 年轻代和老年代都用串行收集器 -XX:+UseParNewGC 年轻代使用ParNew,老年代使用 Serial Old -XX:+UsePara ...

  4. 连接mysql客户端报错: java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'

    报这个错可能是因为用了低版本的的客户端.驱动连接高版本的mysql服务器. 解决方式有三种:升级客户端版本.修改服务端认证方式和适应服务端认证方式. 我是通过升级客户端版本解决,参考一下链接: Upg ...

  5. 【基线检查】(高)基线检查--禁用local-infile选项(访问控制)

    (高)基线检查--禁用local-infile选项(访问控制) 描述 禁用local_infile选项会降低攻击者通过SQL注入漏洞器读取敏感文件的能力 检查提示 -- 加固建议 编辑Mysql配置文 ...

  6. 用网桥和veth实现容器的桥接模式

    原理图如下 具体命令先不写了,有时间再写,主要还是用的上一篇说的知识.

  7. Rust之路(2)——数据类型 上篇

    [未经书面同意,严禁转载] -- 2020-10-13 -- Rust是系统编程语言.什么意思呢?其主要领域是编写贴近操作系统的软件,文件操作.办公工具.网络系统,日常用的各种客户端.浏览器.记事本. ...

  8. 远程IO

    远程io 远程io ZLAN6842,ZLAN6844是8路远程O控制器.含有8路DI.8路DO,8路AI输入.其中DI支持干节点和湿节点,带光耦隔离:DO为继电器输出,具有5A 250VAC或5A ...

  9. pytest文档47-allure报告添加用例失败截图

    前言 使用 selenium 做 web 自动化的时候,很多小伙伴希望用例失败的时候能截图,把异常截图展示到allure报告里面. pytest 有个很好的钩子函数 pytest_runtest_ma ...

  10. 为了运行十年前的代码,程序员们甚至翻出了一台 1977 年的 Apple II

    "Hello, World!" 46 年过去,这段被世人熟知的代码仍散发着历久弥新的魅力,和它一起登场的 C 语言,如今也成长为世界几大通行编程语言之一,为互联网世界乃至现实世界都 ...