123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- $(function(){
- var editor = ace.edit("editor");
- editor.setOption("fontSize","16px");
- //editor.setTheme("ace/theme/twilight");
-
- editor.session.setMode("ace/mode/json");
-
- $("#input_textarea").focus();
- $("#input_textarea").on('keyup',function(){
- var beginTime = +new Date();
- var txt = $(this).val();
- if($.trim(txt)=='') {
- editor.setValue("");
- return;
- }
-
- try{
- var result = jsonlint.parse(txt);
- if($.trim(txt)==''){
- editor.setValue("");
- return;
- }
-
- var jsonObj = JSON.parse(txt);
- var jsonStr = JSON.stringify(jsonObj, null, 4);
- editor.setValue(jsonStr);
- }catch(error){
- //console.log(error);
- var arr=$(this).val().split(',');
- var error_str = "/* 解析 JSON 出错了,具体错误^处已指出 */ \n";
- error_str += error.message + "\n";// + '\n\n' + arr.join('\n') + '\n';
- var i="Parse error on line ".length;
- var j=error.message.indexOf(":");
- var error_index=parseInt(error.message.substring(i,j)) + 8;
- error_str += "\n\n";
- error_str += "/* 此处的错误行数: " + error_index + "行. */ \n";
-
- let result = arr.map((item, index, array) => {
- if (index === array.length - 1) {
- // 最后一个元素
- return item;
- } else {
- // 非最后一个元素
- }
-
- if(item.indexOf("\n") < 0){
- return item + ",\n";
- }
- return item + ",";
- //return item.replace(/\n/g, '');
- });
-
- //error_str += result.join(',\n') + '\n';
- error_str += result.join('') + '\n';
- editor.setValue(error_str);
- }
-
- var endTime = +new Date();
- console.log("time:"+(endTime-beginTime)+"ms");
- });
- });
|