细微之处见真章之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一下,检查一下常见的步骤是否自己都用过了?如看源码、看官方文档、看单测、搜索引擎搜索等。

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


相关文章
|
17天前
|
JSON 人工智能 算法
探索大型语言模型LLM推理全阶段的JSON格式输出限制方法
本篇文章详细讨论了如何确保大型语言模型(LLMs)输出结构化的JSON格式,这对于提高数据处理的自动化程度和系统的互操作性至关重要。
|
2月前
|
JSON JavaScript Java
对比JSON和Hessian2的序列化格式
通过以上对比分析,希望能够帮助开发者在不同场景下选择最适合的序列化格式,提高系统的整体性能和可维护性。
71 3
|
2月前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
2月前
|
JSON 人工智能 算法
探索LLM推理全阶段的JSON格式输出限制方法
文章详细讨论了如何确保大型语言模型(LLMs)输出结构化的JSON格式,这对于提高数据处理的自动化程度和系统的互操作性至关重要。
251 12
|
2月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
2月前
|
JSON Java 数据格式
springboot中表字段映射中设置JSON格式字段映射
springboot中表字段映射中设置JSON格式字段映射
167 1
|
3月前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
177 2
|
4月前
|
XML JSON JavaScript
js的json格式
js的json格式
|
3月前
|
JSON API 数据格式
商品详情数据JSON格式示例参考(api接口)
JSON数据格式的商品详情数据通常包含商品的多个层级信息,以下是一个综合多个来源信息的JSON数据格式的商品详情数据示例参考:
|
4月前
|
JSON 数据格式
Blob格式转json格式,拿到后端返回的json数据
文章介绍了如何将后端返回的Blob格式数据转换为JSON格式,并处理文件下载和错误提示。
255 0
Blob格式转json格式,拿到后端返回的json数据

热门文章

最新文章