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,如需转载请自行联系原作者

目录
相关文章
|
9月前
|
JSON JavaScript IDE
JSON 数据格式化方法
JSON 数据格式化方法
173 3
|
6月前
|
XML JSON 前端开发
json字符串CSS格式化
完成以上步骤后,你便能在网页中看到格式化后的JSON数据,它们将按照CSS定义的样式进行展示,使数据更易于阅读和理解。通过有效地结合JSON和CSS,你可以创建出更加丰富且易于交互的网页内容。
243 64
|
5月前
|
JSON JavaScript 前端开发
js如何格式化一个JSON对象?
js如何格式化一个JSON对象?
162 3
|
6月前
|
XML JSON 前端开发
json字符串CSS格式化
json字符串CSS格式化
101 5
|
7月前
|
JSON 数据格式
Sublime Json 格式化
Sublime Json 格式化
86 0
|
8月前
|
JSON JavaScript 数据格式
vue 格式化展示json(含彩色样式)
vue 格式化展示json(含彩色样式)
552 1
|
9月前
|
JSON 前端开发 JavaScript
Json格式化
Json格式化
|
9月前
|
JSON 数据格式
Notepad++怎么格式化json文件?
Notepad++怎么格式化json文件?
|
8月前
|
JSON JavaScript 前端开发
技术心得:利用JsonSchema校验json数据内容的合规性
技术心得:利用JsonSchema校验json数据内容的合规性
432 0
|
10月前
|
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`参数,我们设置了缩
100 0