细微之处见真章之JSON格式美化

简介: 细微之处见真章之JSON格式美化

一、背景

今天 @段段 在技术群里提出一个问题:”如何实现JSON的格式美化“。

具体含义是,通过后端代码实现将紧凑的JSON字符串变为更美观的形式。

如下面的JSON字符串

{\"age\":0,\"name\":\"张三\",\"sex\":\"女\"
image.gif

转化为如下图的效果:

image.gif

这个问题知道API的人或许一下就可以答上来,不知道的人可能第一反应就是百度。

那么是否有更好的解决方式呢?

本文重点讲述该如何思考和解决这个问题,重点不是问题本身,希望能够对大家有点启发。

二、步骤

解决这个问题的办法有很多种,下面是我建议的步骤。

最核心的思路是:先找,实在找不到自己造轮子。

特别特别特别强调,先思考,再行动。

2.1 先思考

JSON 字符串美化的功能在很多网页工具类里常用,按理说JSON的库是不是应该提供了这种功能呢?

那么该如何去找是否有这种功能呢??

首先想到的就是关键字,由于之前网页上用过提供类似功能的网页,功能描述都是”格式化“,”美化“。

而且我们思考一下,如果有这种功能应该叫啥名呢?是不是也应该叫”格式化/美化“呢?

沿着这个思路,我们去fastjson Jar包或者源码中搜索: beautify / format关键词。

image.png

然后找到疑似相关功能的代码。

找到相关单测,运行看看效果:

image.png

发现正是我们想要的。

2.2 从类出发

如果fastjson提供了格式化或者美化字符串的方法,最有可能和普通转字符串的功能在一个类里,因此也很容易找到这个函数。

public static String toJSONString(Object object, boolean prettyFormat) {
        if (!prettyFormat) {
            return toJSONString(object);
        }
        return toJSONString(object, SerializerFeature.PrettyFormat);
    }

image.gif

2.3 看官方文档

讲真  fastjson 的代码注释很少,严重吐槽!!而且官方文档非常不全,严重吐槽!!

对我们帮助不大。

2.4 借助搜索引擎

搜 fastjson格式化或者美化,或者用英文从 google or  sof里搜,可以找到很多线索。

https://github.com/alibaba/fastjson/issues/150


image.png

2.5 问别人

通过前面几个步骤,这个步骤几乎用不到了。

三、思考

最近在思考新人如何更快更好地进阶,很多多人着急学习,却从来不思考该如何学习,我想最重要的一点应该转变思维意识。

1 从学习具体和记忆具体知识为主,转向学习思考和解决问题的方法为主

2 学习时不要只关心常用的功能,应该时常进源码看一眼,打开函数列表,查看一些非常用的功能。

3 应该从设计者的角度思考问题,想一下它应该有哪些功能,如果我设计我会怎么写,然后和源码进行对比,体会才能深刻,才能不断纠正自己的思路,像优秀的代码靠拢。

如果是直接学习,直接看博客分析,就像直接看答案做题,看着啥都会,其实根本没掌握,看完容易忘,记住不会用

4 很多问题再开口问别人之前,要 wait一下,检查一下常见的步骤是否自己都用过了?如看源码、看官方文档、看单测、搜索引擎搜索等。

然而很多人轻视方法,很多人学了很久却不思考该如何学习,很多人学了很久却从不看源码,很多人学了很久从不看官方文档,很多人问问题之前都不思考,很多人找别人帮助之前甚至都没有表述清楚问题。


相关文章
|
3月前
|
XML 存储 JSON
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
31 0
|
4月前
|
JSON JavaScript 数据格式
JS 将 json 对象转成字符串并保留格式 - JSON.stringify()
JS 将 json 对象转成字符串并保留格式 - JSON.stringify()
61 0
|
2月前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
29 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
9天前
|
存储 JSON NoSQL
MongoDB的文档存储格式BSON和JSON的区别
MongoDB的文档存储格式BSON和JSON的区别
|
4月前
|
XML JSON Java
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
161 0
|
20天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
2月前
|
JSON fastjson Java
FastJSON操作各种格式的JSON数据
FastJSON处理各种格式的JSON数据
|
2月前
|
JSON C# 数据格式
C# 处理gzip格式的json
C# 处理gzip格式的json
19 0
|
3月前
|
JSON 数据格式
将json格式的数据快速转换为excel,使用在线工具轻松搞定
将json格式的数据快速转换为excel,使用在线工具轻松搞定
121 0
|
3月前
|
JSON 关系型数据库 MySQL
这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
【1月更文挑战第17天】【1月更文挑战第84篇】这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
34 1