前言

在日常工作中,后端返回的报文有时候格式比较混乱,不方便我们解析。然后我网上搜了一下,好像离线版的安卓平台JSON格式化工具并不多。不过没关系,没有的话那就去创造一个。

实现方法

实现方法其实很简单,直接利用GSON格式化就可以了,可以说毫无技术含量,不过近期在学习Kotlin,对于退出程序,自定义弹框这样的步骤,尝试使用Kotlin去实现,感觉还是有一定的收获的。

界面截图


部分代码

package com.example.jsonhelperimport android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.graphics.Color
import android.os.Bundle
import android.widget.*
import com.example.jsonhelper.framework.LyyBaseActivity
import com.google.gson.GsonBuilder
import com.google.gson.JsonParser
import org.json.JSONArray
import org.json.JSONObjectclass ResultActivity : LyyBaseActivity() {private lateinit var tipLl:LinearLayoutprivate lateinit var tipIv:ImageViewprivate lateinit var tipTv:TextViewprivate lateinit var sv:ScrollViewprivate lateinit var resultTv:TextViewprivate lateinit var copyBtn:Buttonoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_result)initViews()initTitleBar(title = "格式化结果", isShowBackIcon = true)initEvents()}private fun initViews() {tipLl=findViewById(R.id.tipLl)tipIv=findViewById(R.id.tipIv)tipTv=findViewById(R.id.tipTv)sv=findViewById(R.id.sv)resultTv=findViewById(R.id.resultTv)copyBtn=findViewById(R.id.copyBtn)val jsonStr = intent.getStringExtra(MainActivity.DATA_KEY)if (jsonStr!=null&&isJSONStr(jsonStr)){tipTv.text="老铁,这个JSON没毛病!"tipTv.setTextColor(Color.parseColor("#419F4B"))tipIv.setImageResource(R.drawable.icons8_checkmark_96px)val gson = GsonBuilder().setPrettyPrinting().serializeNulls().create()val resultText = gson.toJson(JsonParser.parseString(jsonStr))resultTv.setText(resultText)copyBtn.isEnabled=true}else{tipTv.text="老铁,这个JSON有点问题!"tipTv.setTextColor(Color.parseColor("#F64439"))tipIv.setImageResource(R.drawable.icons8_delete_sign_96px)resultTv.text=""copyBtn.isEnabled=false}}/*** 判断字符串是否为JSON字符串。既不是对象,也不是数组,那么它就不是JSON字符串,否则就是JSON字符串*/private fun isJSONStr(str:String):Boolean{try {JSONObject(str)} catch (e: Exception) {try {JSONArray(str)} catch (e: Exception) {return false}}return true}private fun initEvents() {copyBtn.setOnClickListener {copyText(resultTv.text.toString())}}private fun copyText(content:String){val clipboardManager = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManagerval text = ClipData.newPlainText("LABEL", content)clipboardManager.setPrimaryClip(text)Toast.makeText(this,"复制成功!",Toast.LENGTH_SHORT).show()}}

安装包下载

链接:https://pan.baidu.com/s/1CqgXjbG3ZNICpKOEWSGKzw
提取码:8jn4

项目完整源码

已经放到码云上,点我跳转

安卓JSON格式化工具相关推荐

  1. 在线JSON格式化工具

    在线JSON格式化工具 在线JSON格式化工具 https://tooltt.com/json/

  2. Java Json格式化工具

    Java Json格式化工具 Java 实现Json格式化工具 代码地址: https://github.com/AndroidJavaToolsDemo/JavaTool_JsonValidate ...

  3. 那些年我用过的JSON格式化工具

    JSON格式化是开发中不可或缺的一个工具,但是要做这个事其实有很多方式,有的同学习惯用本地的工具,比如VsCode或者Utool之类的,有的同学习惯用在线的工具,当然各有各的好处,但本质上是习惯的问题 ...

  4. JSON格式化工具下载

    JSON格式化工具分享,web开发中要看JSON的时候经常不方便,特意找了一些格式化工具,放到了我的网盘上 一.Windows下格式化json的工具: 1.JsonView 下载地址:https:// ...

  5. CentOS7安装json格式化工具jq

    更多内容,请查看博客原文:CentOS7安装json格式化工具jq https://finolo.gy/2019/12/CentOS7安装json格式化工具jq cd /etc/yum.repos.d ...

  6. Json 格式化工具类 支持Jackson、FastJson、Gson

    Json 格式化工具类 1.使用Jackson的DefaultPrettyPrinter来格式化json /*** 将对象按以格式化json的方式写出* 使用的json为Jackson** @para ...

  7. 好用的JSON格式化工具

    没有广告,好用,可以折叠显示的JSON格式化工具 http://jsonviewer.stack.hu/

  8. 超级好用的json格式化工具

    理想的json格式化工具应该具备什么? 你心中的json格式化工具是什么? Json.cn? No No No, 这个已经老掉牙了 理想的json格式化工具应该支持搜索.定位.非法json容错,若实在 ...

  9. Ubuntu20.04谷歌浏览器安装json格式化工具jsonviewer

    一.下载jsonviewer格式化工具 工具下载地址:https://github.com/gildas-lormeau/JSONView-for-Chrome 解压 到本地 JSONView-for ...

最新文章

  1. 2013第四届蓝桥杯Java组省赛题解析
  2. asl不成功怎么算_那些减肥成功还不反弹的人是怎么做到的?
  3. Python 中的numpy 库
  4. k8s往secret里导入证书_K8S之Secret
  5. c语言中文件读写面试题,在C ++中有效读取非常大的文本文件
  6. Bootstrap3.0学习第八轮(工具Class)
  7. spark学习-41-Spark的块传输服务BlockTransferService
  8. 想抛就抛:Application_Error中统一处理ajax请求执行中抛出的异常
  9. Android中AMS工作原理,Android AMS启动详解
  10. No package ‘libmate-menu‘ found
  11. 方差分析(Analysis of Variance,ANOVA)是什么?怎么就可以用来做特征筛选?方差分析(ANOVA)的本质是什么?
  12. [译] 一文教你预测 app 未来的变现情况
  13. IOS日历控件JTCalendar
  14. python模拟鼠标点击脚本_python模拟鼠标点击和键盘输入的操作
  15. FreeRtos 任务优先级和中断优先级
  16. 感谢同事的临别赠言,愿自己一路顺风
  17. Excel — 动态图表(复选框实现动态图)
  18. 四轴自适应控制算法的一些尝试开源我的山猫飞控和梯度在线辨识自适应等算法—(转)...
  19. 游戏服务端php,fooking: 分布式游戏网关(php游戏网关, php游戏服务端)
  20. mdk工程的批量操作文件

热门文章

  1. 目标检测-twostage
  2. es filter中使用should
  3. 蚂蚁开放平台开发者专场(上海站)欢迎参加!
  4. 2017广州(国际)演艺设备、智能声光产品技术展览会GETshow会刊(参展商名录)
  5. 省时省力的PDF编辑技巧,不会实在可惜
  6. 《一本书读懂24种互联网思维》---- 读书笔记
  7. 基于Go语言星座查询~
  8. Python基础 编写项目 学生管理系统
  9. 黑马程序员——阿龙的学习历程——Java初见
  10. 《设计模式之禅(第三版)》 摘录篇-------依赖倒置原则