大家可以输入或者粘贴一些JSON数据来校验是否正确。 按Tab键自动全文缩进格式化。 JSON 编辑器 核心代码
';
this.msgUI.className=type;
},
show:function (ico,id){/* 显隐树节点 */
var subView=ico.parentNode.parentNode.childNodes[1].style,J=this.ico;
if(subView.display=='none'){
subView.display='';
ico.src=J[id];
}else{
subView.display='none';
ico.src=J[id+'c'];
};
},
select:function (sender){
var sub=sender.parentNode.parentNode.getElementsByTagName("INPUT");
for (var i=0;i
} }; JE.add=function(){ this.msg('功能添加中...*_^'); } JE.editItem=function(){ this.msg('功能添加中...*_^'); } JE.begin=function(){/* 设置UI控件关联响应 */ var $=function (id){return document.getElementById(id)}; /* 关联UI */ JE.editUI=$("json_eidit"); JE.msgUI=$("json_editInfo"); JE.treeUI=$("tree"); var updateUI=$("update"); var auto=$("autoUpdate"); var fontSize=$("fontSize"); /* 单击树子项 */ JE.onclick=function(item){ var key='键名: ', val=' 键值: '+(item.getAttribute('val')==''?'成员列表':' '), add='新增 ', edit='修改 '; JE.msg(key+val+add+edit,'info'); } /* 监听代码变化事件 */ JE.editUI.oninput=JE.editUI.onpropertychange=function (){ if(JE.formating)return;/* 格式化不刷新树 */ if(/^\s*$/.test(this.value))return JE.msg('请输入JSON格式的代码!');; clearTimeout(JE.update); try{JE.data=eval('('+this.value+')'); }catch(e){ JE.editUI.style.color='red'; return JE.msg("源代码有错误: "+e.description+' , 如果正在编辑中, 请忽略此消息!','err'); }; JE.editUI.style.color='#000'; if(auto.checked||JE.firstUp){/*若同步*/ JE.msg('语法正确,正在重新构造树,请稍候...','busy'); JE.update=setTimeout(function(){ JE.toTree(); },450); }else{ JE.msg('语法正确,请点击刷新,或者打开视图同步开关,或者继续编辑!') } return true; }; if(window.ActiveXObject) document.execCommand("BackgroundImageCache", false, true); /* 拦截Tab,自动格式化 */ JE.editUI.onkeydown=function (){ if(event.keyCode==9){$('format_indent').onclick();event.returnValue=false;}; JE.code=this.value; } /* 格式化 */ var format=function(compress){ var code=JE.format(JE.editUI.value,compress); JE.formating=true; if(code)JE.editUI.value=code; JE.editUI.focus(); setTimeout(function(){JE.formating=false;},1000); return code; } /* 工具栏按钮 */ $('format_indent').onclick=function (){if(format())JE.msg('完成缩进风格转换,'+JE.countInfo)} $('format_compress').onclick=function (){if(format(true)!=undefined)JE.msg('完成紧凑风格转换,'+JE.countInfo);} updateUI.onclick=function (){ JE.firstUp=true; JE.editUI.onpropertychange()?JE.msg('成功刷新视图!'):JE.msg('数据有误,刷新失败!','err') JE.firstUp=false; }; $('clear_txt').onclick=function (){JE.editUI.value=JE.treeUI.innerHTML='';JE.editUI.focus();} auto.onclick=function (){JE.msg('自动同步视图功能'+(this.checked?'开启':'关闭!'));}; /* 另存为 */ if(/*@cc_on !@*/true){$('save_as').style.display='none'}; $('save_as').onclick=function (){ var d=document,w=d.createElement('IFRAME'); w.style.display="none"; d.body.appendChild(w); setTimeout(function(){ var g=w.contentWindow.document; g.charset = 'utf-8'; g.body.innerHTML=JE.editUI.value; g.execCommand("saveas",'', "json.txt") ; },1); } }; /* 从这里开始 */ window.onload=function (){ JE.begin(); } // -->
Déclaration: Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn