`

json formatter(一个检查json格式是否正确的小工具)

 
阅读更多

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Formatter and colorer of raw JSON code</title>
<meta name="description" content="A tool to format and color raw JSON code">
<meta name="keywords" content="Json, Printer, Colorer, Format, Color">
<script>
// we need tabs as spaces and not CSS magin-left
// in order to ratain format when coping and pasing the code
window.TAB = " ";

function IsArray(obj) {
return obj &&
typeof obj === 'object' &&
typeof obj.length === 'number' &&
!(obj.propertyIsEnumerable('length'));
}

function Process(){
var json = document.getElementById("RawJson").value;
var html = "";
try{
if(json == "") json = "/"/"";
var obj = eval("["+json+"]");
html = ProcessObject(obj[0], 0, false, false, false);
document.getElementById("Canvas").innerHTML = "<PRE class='CodeContainer'>"+html+"</PRE>";
}catch(e){
alert("JSON is not well formated:/n"+e.message);
document.getElementById("Canvas").innerHTML = "";
}
}
function ProcessObject(obj, indent, addComma, isArray, isPropertyContent){
var html = "";
var comma = (addComma) ? "<span class='Comma'>,</span> " : "";
var type = typeof obj;

if(IsArray(obj)){
if(obj.length == 0){
html += GetRow(indent, "<span class='ArrayBrace'>[ ]</span>"+comma, isPropertyContent);
}else{
html += GetRow(indent, "<span class='ArrayBrace'>[</span>", isPropertyContent);
for(var i = 0; i < obj.length; i++){
html += ProcessObject(obj[i], indent + 1, i < (obj.length - 1), true, false);
}
html += GetRow(indent, "<span class='ArrayBrace'>]</span>"+comma);
}
}else if(type == 'object' && obj == null){
html += FormatLiteral("null", "", comma, indent, isArray, "Null");
}else if(type == 'object'){
var numProps = 0;
for(var prop in obj) numProps++;
if(numProps == 0){
html += GetRow(indent, "<span class='ObjectBrace'>{ }</span>"+comma, isPropertyContent);
}else{
html += GetRow(indent, "<span class='ObjectBrace'>{</span>", isPropertyContent);
var j = 0;
for(var prop in obj){
html += GetRow(indent + 1, "<span class='PropertyName'>"+prop+"</span>: "+ProcessObject(obj[prop], indent + 1, ++j < numProps, false, true));
}
html += GetRow(indent, "<span class='ObjectBrace'>}</span>"+comma);
}
}else if(type == 'number'){
html += FormatLiteral(obj, "", comma, indent, isArray, "Number");
}else if(type == 'boolean'){
html += FormatLiteral(obj, "", comma, indent, isArray, "Boolean");
}else if(type == 'function'){
obj = FormatFunction(indent, obj);
html += FormatLiteral(obj, "", comma, indent, isArray, "Function");
}else if(type == 'undefined'){
html += FormatLiteral("undefined", "", comma, indent, isArray, "Null");
}else{
html += FormatLiteral(obj, "/"", comma, indent, isArray, "String");
}
return html;
}
function FormatLiteral(literal, quote, comma, indent, isArray, style){
if(typeof literal == 'string')
literal = literal.split("<").join("&lt;").split(">").join("&gt;");
var str = "<span class='"+style+"'>"+quote+literal+quote+comma+"</span>";
if(isArray) str = GetRow(indent, str);
return str;
}
function FormatFunction(indent, obj){
var tabs = "";
for(var i = 0; i < indent; i++) tabs += window.TAB;
var funcStrArray = obj.toString().split("/n");
var str = "";
for(var i = 0; i < funcStrArray.length; i++){
str += ((i==0)?"":tabs) + funcStrArray[i] + "/n";
}
return str;
}
function GetRow(indent, data, isPropertyContent){
var tabs = "";
for(var i = 0; i < indent && !isPropertyContent; i++) tabs += window.TAB;
if(data != null && data.length > 0 && data.charAt(data.length-1) != "/n")
data = data+"/n";
return tabs+data;
}
</script>
<style>
.Canvas
{
font: 10pt Georgia;
background-color:#ECECEC;
color:#000000;
border:solid 1px #CECECE;
}
.ObjectBrace
{
color:#00AA00;
font-weight:bold;
}
.ArrayBrace
{
color:#0033FF;
font-weight:bold;
}
.PropertyName
{
color:#CC0000;
font-weight:bold;
}
.String
{
color:#007777;
}
.Number
{
color:#AA00AA;
}
.Boolean
{
color:#0000FF;
}
.Function
{
color:#AA6633;
text-decoration:italic;
}
.Null
{
color:#0000FF;
}
.Comma
{
color:#000000;
font-weight:bold;
}
PRE.CodeContainer{
margin-top:0px;
margin-bottom:0px;
}
</style>
</head>
<body>
<div style="float:right;font-size:11px;">Quick Json Formatter 1.0 Copyright (c) 2008 Vladimir Bodurov <a href="http://blog.bodurov.com">http://blog.bodurov.com</a></div>
<h3 style="margin-bottom:2px">Formatter and colorer of raw JSON code</h3>
<div>Enter your JSON here:</div>

<textarea id="RawJson" cols="100" rows="8">
</textarea><BR/>
<input type="Button" value="Format" onClick="Process()"/>
<div id="Canvas" class="Canvas"></div>

</body>
</html>

分享到:
评论

相关推荐

    JSON Formatter.zip

    - 当访问一个返回JSON数据的网页时,点击浏览器工具栏上的JSON Formatter图标,插件会在当前页面上呈现格式化的JSON数据。 - 插件可能提供额外的功能,例如复制、搜索、折叠/展开键值对,具体取决于开发者编写的...

    jsonFormatter.rar

    总的来说,`jsonFormatter`是一个实用的JSON格式化工具,尤其适合Windows平台上的开发者,它可以帮助我们快速整理和理解复杂的JSON数据,提高开发和调试的效率。通过`jsonFormatter.exe`的便捷操作和`ReadMe1.txt`的...

    软件开发、JSON Formatter、JSON格式化

    Chrome作为目前最流行的浏览器之一,拥有丰富的扩展库,而JSON Formatter就是其中的一个实用工具,它能无缝集成到开发者的日常工作中。 在压缩包文件列表中,我们看到的是“0.7.1_0”,这可能是该JSON Formatter...

    json formatter.crx

    1. **自动格式化**:当你访问一个返回JSON数据的链接时,安装了JSON Formatter的Chrome浏览器会自动检测并格式化显示这些数据,使其更易于理解。 2. **缩进调整**:用户可以根据个人喜好设置缩进的空格数量,从而...

    JSON-Formatter_v0.6.0

    4. **错误检查**:插件可能会检测输入的JSON是否有效,如果存在语法错误,会提示错误位置。 5. **搜索和替换**:在大量JSON数据中查找特定内容或进行批量替换。 6. **导出和导入**:将格式化的JSON保存到本地,或者...

    json-formatter-0.5.7.zip

    JSON(JavaScript Object Notation)是一...总之,"json-formatter-0.5.7"是Cherom浏览器的一个强大工具,它简化了JSON数据的查看和处理过程,对于任何需要频繁与JSON数据打交道的开发者来说,都是不可或缺的辅助工具。

    前端项目-json-formatter.zip

    本项目"json-formatter"是针对前端开发的一个实用工具,专注于处理JSON数据的展示和格式化。通过使用Angular框架,它提供了一个可复用的指令(Directives)模板,帮助开发者轻松地在应用中嵌入JSON数据的格式化功能...

    jsonFormatter_v1.1.0.0.rar

    JSONFormatter_v1.1.0.0.rar是一款针对JSON数据的格式化工具,其源码可以帮助开发者深入理解JSON数据的处理和展示过程。 在上一版本的基础上,jsonFormatter_v1.1.0.0对大数据量粘贴时导致界面卡顿的问题进行了优化...

    JSON格式化工具.rar

    本压缩包文件"JSON格式化工具.rar"包含了一个JSON格式化工具,该工具提供了以下功能: 1. **格式化**:工具可以接收一个未格式化的JSON字符串,将其转换为标准的缩进格式。这包括添加适当的空格和换行,使得数据...

    jsonformatter:jsonformatter 是python 的格式化程序,可以轻松输出自定义的json 日志,例如输出LogStash 所需的日志

    jsonformatter是python 输出json 日志的格式化程序,例如输出LogStash所需的日志。 轻松自定义(添加/替换) LogRecord属性,例如在Flask Web 项目中,将username属性添加到LogRecord以自动输出用户名。 从 0.2.X...

    json-formatter-js:以漂亮HTML(纯JavaScript)呈现JSON对象

    JSON格式器 使用可折叠的导航呈现HTML中的JSON对象。 JSON Formatter作为启动。 这是同一模块的纯JavaScript实现。 用法 通过npm安装 npm install --save json-formatter-js 在页面的dist文件夹中包含json-...

    JSONFormatter:java中的json格式化程序小程序,使用org.json.jar

    总的来说,`JSONFormatter`结合`org.json.jar`库为Java开发者提供了一个便捷的工具,帮助他们更有效地处理和理解JSON数据,提升开发效率和代码质量。在实际的软件开发过程中,理解和掌握这个工具及其底层库的使用...

    JSON Formatter CRX 0.6.3 for Chrome

    JSON Formatter,特别好用的Chrome扩展打印JSON和JSONP,格式化、生成便于人观看的json数据格式,json开发者福音,直接在浏览器选项卡访问json格式数据。

    json-formatter, 使 json/jsonp易于阅读.zip

    json-formatter, 使 json/jsonp易于阅读 JSON格式化程序当你在浏览器选项卡中访问 in'直接'时,很好的打印JSON和tmodel的Chrome 扩展。特性JSONP支持快速,即使在长页面上有效的JSON页面- URL不重要语法高亮显示带有...

    JsonFormatter:用于人类的 JSON 格式化程序

    `JsonFormatter` 是一个专为人类设计的 JSON 格式化工具,旨在将原始的、紧凑的 JSON 数据转换成清晰、易读的格式。 在JavaScript环境中,处理JSON数据是常见的任务,无论是从服务器获取数据还是存储用户设置。`...

    JSONFormatter:JSON -> HTML 格式化程序

    JSON -&gt; HTML 格式化程序 ...new JSONFormatter(options).toHtml(json); 支持的options - 数字 - 字符串 - 布尔值 - 对象 - 数组 示例options覆盖 var formatterOptions = { 'string' : function

    json-formatter-master.zip

    总之,"json-formatter-master.zip"提供了谷歌浏览器的一个实用工具,它优化了JSON数据的查看体验,对于开发者和数据分析人员来说是必不可少的辅助工具。通过理解压缩包中的各个文件和其作用,我们可以更好地利用这...

    springboot编程中在google浏览器格式化显示json格式数据

    在调试和查看JSON响应时,一个有效的工具能够极大地提升开发效率。Google Chrome浏览器提供了一些优秀的插件,帮助我们更方便地格式化和查看JSON数据。 本文将详细介绍如何在Google Chrome中安装和使用JSON格式化...

    JSON-Formatter(v0.6.0).crx

    一种chrome插件,可以快速将JSON字符串格式化成标准格式的JSON内容,直接拖入chrome的插件管理中心即可安装。对比了很多json的格式化插件,这个比较好用。

Global site tag (gtag.js) - Google Analytics