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

一、背景

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

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

如下面的JSON字符串

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

转化为如下图的效果:

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

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

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

 

二、步骤

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

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

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

 

2.1 先思考

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

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

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

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

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

 

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

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

发现正是我们想要的。

2.2 从类出发

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

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

2.3 看官方文档

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

对我们帮助不大。

 

2.4 借助搜索引擎

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

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

2.5 问别人

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

 

 

三、思考

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

 

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

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

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

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

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

 

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18870.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

应对互联网变局,这 8 件事必须要做。

阅读本文大概需要 1.8 分钟。 昨晚直播说了挺多,整体都是跟互联网相关,也提到整体环境,有不少人失去工作后不知所措,也有不少人说创业的合规成本太高应该怎么做?更有不少在职场的人表示大家太卷又该怎么应对等等。 上述…

我让ChatGPT用CSS3画一个皮卡丘,还是自己画的可爱

突然想到了小时候看过的动画片《皮卡丘》,于是突然就想,ChatGPT肯定也看过,他哪有不知道的东西啊,于是就想着让他帮我画一个,他画出来之后,我笑了,这啥玩意儿啊。 目录 一、第一次尝试让ChatGP…

总是后来居上,我曾经的偶像公司又火了 !

1 有一家IT公司,在它成立40多年的历史上,非常幸运,非常罕见地踏中了三次浪潮。 这三次浪潮分别是PC、云计算和AI。 尤其是后两次,在十年的时间内连续踏上,实在是牛。 没错,这家公司就是微软。 PC时代&#…

Python速查表;腾讯大佬的AIGC设计应用汇总;这个世界需要10亿开发者;67个最常用AI工具清单 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 『一份必收藏的 Python 3 速查表』可运行代码中文注释 随着AIGC浪潮的兴起,越来越多小伙伴尝试着使用 GPT 类工具开发小程…

ChromeBox 推出 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 5 月 29 日,在 1985 年的今天,伊士曼柯达公司推出了一种名为 Ektaprint 电子出版系统的电子出版系统,旨在允许公司编辑、打印…

“28 年后,Windows 终于原生支持了 RAR 文件!”

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 即将彻底告别那些第三方存档应用程序。 今天凌晨,微软在西雅图举办了一场关于 AI 的“小春晚”——Build 2023 大会。在大会上,除了宣布的 Bing 将引入 ChatGPT 成为默认搜索体验…

【GPT-4】HuggingFace万字访谈:OpenAI不足为惧,每个公司都会有自己的GPT-4

日前,Hugging Face 创始人 Clem Delangue 参与了一场访谈,过程中谈到了以下几个关键问题: Hugging Face 的创始故事 大模型 AI 未来会如何迭代? 大公司闭源会对开源社区产生影响吗? 驱动大模型进步的核心是什么? 通用大模型和专用小模型有优劣之分吗? 现阶段如何进行更具…

AIGC新时代,注意政策走向,产业方向,拥抱可信AI。需要了解基本理论,基础模型,前沿进展,产品应用,以及小小的项目复现

AIGC(AI-Generated Content,AI生成内容)是指基于生成对抗网络(GAN)、大型预训练模型等人工智能技术的方法,通过对已有数据进行学习和模式识别,以适当的泛化能力生成相关内容的技术。类似的概念还…

a16z最新预判——AI虚拟陪伴生态全解析!

导语 “AI的魔力在于它的不断演变。有一天,它会比真实的“女朋友”更出色。未来某一天,选择真实的伴侣反而会成为第二优先级的选择。” 这是来自CarynAI社区的一位早期用户,在这个社区中已经有超过20,000人了。这个社区的用户们每分钟支付1美…

A16Z:AI Companion的趋势洞察

[ AI技术在人际交往中的应用是否会对人类关系产生负面影响? ] shadow 我想发起一场实验:你愿意参与这一场全程由AI主导的社交游戏吗?你只需要接受or拒接AI给你的任务。 听起来就很有意思 # # 预约参加 …… opus 今天推荐的是A16Z的一篇文章&…

第一批用ChatGPT坐牢的人,都玩的是哪些套路?

通过GPT在短时间内生成完整诈骗话术,套路啊套路 “虚拟角色”可以虚拟客服,还可以虚拟恋人玩杀猪盘 让受害人以为自己“坠入爱河” 套路还是从前的套路 但骗子用上了新的工具 又换上了很多马甲 防不胜防 你以为OpenAI不知道骗子会用这个工具来做坏…

我用GPT搭建了一个虚拟女友!

Datawhale干货 作者:仲泰,Datawhale成员 1. 作者知乎:https://www.zhihu.com/people/yong-tan-39-67 2.我用GPT搭建了一个虚拟女友-哔哩哔哩:https://b23.tv/GYYwMcq 3. 五月学习:ChatGPT应用组队学习来了&#xff01…

人人都可拥有的自主性AI:有记忆会使用工具,还会自我学习!底层自研框架即将开源...

明敏 发自 凹非寺量子位 | 公众号 QbitAI 要说AutoGPT为啥会迅速蹿红? 还不是把人类对AI的想象力再次打开了。 使唤AI不用再一句句引导,更不用去研究提示工程了。 人人像钢铁侠那样拥有超级AI贾维斯不是梦。 而就在现在,这种Auto AI Copilot已…

被颠覆、被捅刀、被群嘲:谷歌还能打赢这场AI之战吗?

去年12月,AI聊天机器人ChatGPT3.5对外发布几周后,谷歌就意识到了危险,CEO桑达尔皮查伊(Sundar Pichai)对内发出了“红色警报”(CodeRed)。 这是一场噩梦的开始。 过去4个月,皮…

深度剖析ja3指纹及突破

声明 以下只是搬运下我公众号的东西。很早就发过了。原帖地址: 深度剖析ja3指纹及突破 (qq.com) 已经发公众号的为什么还发csdn 有的圈内朋友,不经过我的允许,删减摘录我公众号的内容,这里就不提谁了,心里清楚&#x…

《Linux是怎样工作的》读书笔记

目录 前言Chapter 1 计算机系统概要1.1 计算机的硬件1.2 OS1.3 用户模式和内核模式1.4内核 Chapter 2 用户模式实现的功能2.1系统调用2.2系统调用的包装函数2.3 OS提供的程序 Chapter 3 进程管理3.1进程与线程进程线程进程和线程的区别 3.2 fork3.3 execve3.4 结束进程 Chapter…

用 Real-ESRGAN 拯救座机画质,自制高清版动漫资源

本文约1200字,建议阅读8分钟Real-ESRGAN 是 ESRGAN 升级之作,主要有三点创新:提出高阶退化过程模拟实际图像退化,使用光谱归一化 U-Net 鉴别器增加鉴别器的能力,以及使用纯合成数据进行训练。 相比于如今画面优良精美的…

Git学习

安装Git 可参考:https://blog.csdn.net/mukes/article/details/115693833?ops_request_misc%257B%2522request%255Fid%2522%253A%2522168121346716800192220040%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id16812134671680019…

线性回归 梯度下降原理与基于Python的底层代码实现

线性回归基础知识可查看该专栏中其他文章。 文章目录 1 梯度下降算法原理2 一元函数梯度下降示例代码3 多元函数梯度下降示例代码 1 梯度下降算法原理 梯度下降是一种常用的优化算法,可以用来求解许包括线性回归在内的许多机器学习中的问题。前面讲解了直接使用公…

面渣逆袭:Java集合连环三十问

大家好,我是老三。上期发布了一篇:面渣逆袭:HashMap追魂二十三问,反响很好! 围观群众纷纷表示👇 不写,是不可能不写的,只有卷才能维持了生活这样子。 当然,我写的这一系…