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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/427686

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。