JSONLint的妙用-格式化和校验JSON

简介:

 基本从事web开发的人应该没有不熟悉Douglas Crockford的。这位鼎鼎有名的人曾经是Yahoo高级js架构师,现在是Paypal的高级js架构师。它创造了大名鼎鼎的json数据类型,从而让web世界能以一种比xml格式更精简又不失可读性的类型来传播数据,他照片如下(中间高大有气质者):

 

 

他创造了JSONLint ,今天我们这里就简单介绍下。

因为不少同事,当他们比如跑java单元测试或者别的什么,有时候经常打印出来一个json字符串,但是这个json字符串都是一字排开的,十分难以阅读,尤其想知道这个payload的逻辑关系并且想要进一步处理的前端开发人员。

 

比如像下面这一个jsonPayload:

 
 
  1. {"result":"OK","type":"MASTERDETAIL","displaytables":[{"name":"Payment Details for Payment Handle : BO-Nitz1-5678912340_12345_69 or Order ID : BO-Nitz1-69","columns":["OrderDate","LastUpdate","Order","Invoice","PaymentHandle","Status","Reserved","Captured","Canceled","Refunded","Client","ClientReqID","Cookie","PPayID"],"rows":[["2012-08-23","2012-08-23","BO-Nitz1-69","567891234X069","BO-Nitz1-5678912340_12345_69","RESERVED","30","0","0","0","BO-CART","BO-CART5678912340_691","{\"reDLPTransactions\":{\"AUTH1345768366239\":{\"transactionType\":\"AUTH\",\"timeStamp\":\"Thu Aug 23 17:32:46 PDT 2012\",\"mopTypeCd\":\"VI\",\"reqId\":\"630001301505\",\"origReqId\":\"\",\"ordId\":\"567891234X069\",\"userId\":\"BO-Nitz1-69\",\"actCd\":\"OA\",\"statCd\":\"APPROVE\",\"rspCd\":\"100\",\"rspDt\":\"2012-08-23\",\"rspTm\":\"17:32:55\",\"rspAuthNum\":\"12345\",\"rspAvsCd\":\"Y\",\"rspSecCd\":\"M\",\"divNum\":\"FDSDIV\",\"amt\":\"3000\",\"currencyCd\":\"USD\",\"reqTypeCd\":\"S\",\"tdsXid\":\"3838393030323833353336313630303732303932\",\"tdsCavv\":\"0800020945089473704895114708940000000000\",\"sKeyId\":\"2\"}}}","8a7263a8395550a80139560b9fa00004"],[["Mod Date","Trans","State","Client","Order","Invoice","PiHash","Amount","ReasonCode","PaymentHandle","Plugin","Endpoint","Req Start","Req End","Secret Sauce","ClientReqID","PMID","TestMode","Cr1","Cr2","Cr3","Cr4","IdCheck","AVS","CreateDate","Plugin Start","Plugin End","GW Start","GW End","RedoReqID","PReqID","PPayID"]],["2012-08-23","PayDoBeforeShipping","SUCCESS","BO-CART","BO-Nitz1-69","567891234X069","PIH.pangpidb.VISA.CREDITCARD.30000924.2227","30","A101","BO-Nitz1-5678912340_12345_69","PaymentReDLPPlugin","FDSDIV","2012-08-23 17:32:45.92","2012-08-23 17:32:46.24","{\"transactionType\":\"AUTH\",\"timeStamp\":\"Thu Aug 23 17:32:46 PDT 2012\",\"mopTypeCd\":\"VI\",\"reqId\":\"630001301505\",\"origReqId\":\"\",\"ordId\":\"567891234X069\",\"userId\":\"BO-Nitz1-69\",\"actCd\":\"OA\",\"statCd\":\"APPROVE\",\"rspCd\":\"100\",\"rspDt\":\"2012-08-23\",\"rspTm\":\"17:32:55\",\"rspAuthNum\":\"12345\",\"rspAvsCd\":\"Y\",\"rspSecCd\":\"M\",\"divNum\":\"FDSDIV\",\"amt\":\"3000\",\"currencyCd\":\"USD\",\"reqTypeCd\":\"S\",\"tdsXid\":\"3838393030323833353336313630303732303932\",\"tdsCavv\":\"0800020945089473704895114708940000000000\",\"sKeyId\":\"2\"}","BO-CART5678912340_691","VISA","N","201604","XXX","Credential 3","Credential 4","05;88900283536160072092;CAACCUUIlHNwSJURRwiUAAAAAAA=","{null}","2012-08-23","2012-08-23 17:32:46.05","2012-08-23 17:32:46.239","2012-08-23 17:32:46.051","2012-08-23 17:32:46.238","{null}","8a7263a8395550a80139560b9fa10005","8a7263a8395550a80139560b9fa00004"]]}],"errorMessages":null

那么怎么才能快速让其变得有可读性并且校验这个json是否合法呢?这时候我们就需要由JSON之父创造的JSONLint了:

去以下网站:http://jsonlint.com/

 

我们只需要吧我们待校验的格式化之前的jsonPayload粘贴到文本框中:

然后点击下面的"Validate" 按钮,则会出现一个格式化之后的jsonPayload,并且最下面有校验结果看这个json是否合法。

 

 

 

值得一提的是,他还开发了另外一个姊妹工具,JSLint,可以用来格式化和校验原生的ECMAScript的内容了,可惜不能校验一些js框架比如Ext-js的代码:

我这里也奉献上链接:http://www.jslint.com

 





本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/985645,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
JSON 数据格式 Python
python写入的json文件要格式化
要将JSON格式化后写入文件,你可以在`json.dump()`函数中使用`indent`参数来设置缩进级别。以下是一个示例: ```python import json data = {"name": "John", "age": 30, "city": "New York"} with open('data.json', 'w') as file: json.dump(data, file, indent=4) ``` 在这个示例中,我们使用`json.dump()`函数将Python对象转换为JSON格式,并将其写入到文件中。通过传递`indent=4`参数,我们设置了缩
|
5月前
|
JSON JavaScript 数据格式
jQuery将json性别数据int类型进行格式化渲染
jQuery将json性别数据int类型进行格式化渲染
26 0
|
5月前
|
JSON 前端开发 Java
Java实现树的格式化打印以及返回前端json树
Java实现树的格式化打印以及返回前端json树
31 0
|
5月前
|
JSON Linux 开发工具
linux 利用python模块实现格式化json
linux 利用python模块实现格式化json
46 0
|
8月前
|
JSON JavaScript 前端开发
开发了一个json格式化工具,使用js格式化json的代码分享
今天给大家介绍一下如何通过js来格式化json。
71 0
|
9月前
|
Web App开发 JSON 前端开发
360浏览器安装JSON-Handle插件实现页面JSON数据格式化的操作方法
360浏览器安装JSON-Handle插件实现页面JSON数据格式化的操作方法
189 0
|
JSON Shell 数据格式
shell 中格式化显示 json 字符串
可以利用 `python3` 提供的标准库 `json` 来实现, 或 jq
500 0
|
存储 JSON 前端开发
谁偷了我的1天,JSON格式化时区问题
谁偷了我的1天,JSON格式化时区问题
811 0
谁偷了我的1天,JSON格式化时区问题
|
XML JSON 前端开发
SpringBoot2.x系列教程15--SpringBoot中整合HttpMessageConverters实现JSON格式化
前言 在之前的章节中,壹哥 带着各位学习了如何在Spring Boot中进行SSM整合。那么接下来,我们会继续深入研究SpringBoot对SpringMVC框架的支持,学习SpringBoot如何进行更深度的定制化Web开发。 前面我讲过,SpringBoot严格的来说,应该是一种负责把其他已有框架整合在一起的工具,SpringBoot主要是把各种框架都整合集中在一起,简化我们的Web开发。所以很多的功能,其实都不是SpringBoot完成的,而是由SpringBoot中整合的其他框架来完成的。比如Web开发,更多的是由SpringMVC来完成,只是SpringBoot很好的把Spring
1000 0
|
JSON 前端开发 测试技术
接口测试平台优化:前端json格式化显示效果实现
接口测试平台优化:前端json格式化显示效果实现
接口测试平台优化:前端json格式化显示效果实现