jquery插件
(function ($) {
var m = {
'\b': '\\b',
'\t': '\\t',
'\n': '\\n',
'\f': '\\f',
'\r': '\\r',
'"' : '\\"',
'\\': '\\\\'
},
s = {
'array': function (x) {
var a = ['['], b, f, i, l = x.length, v;
for (i = 0; i < l; i += 1) {
v = x[i];
f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
if (b) {
a[a.length] = ',';
}
a[a.length] = v;
b = true;
}
}
}
a[a.length] = ']';
return a.join('');
},
'boolean': function (x) {
return String(x);
},
'null': function (x) {
return "null";
},
'number': function (x) {
return isFinite(x) ? String(x) : 'null';
},
'object': function (x) {
if (x) {
if (x instanceof Array) {
return s.array(x);
}
var a = ['{'], b, f, i, v;
for (i in x) {
v = x[i];
f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
if (b) {
a[a.length] = ',';
}
a.push(s.string(i), ':', v);
b = true;
}
}
}
a[a.length] = '}';
return a.join('');
}
return 'null';
},
'string': function (x) {
if (/["\\\x00-\x1f]/.test(x)) {
x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
var c = m[b];
if (c) {
return c;
}
c = b.charCodeAt();
return '\\u00' +
Math.floor(c / 16).toString(16) +
(c % 16).toString(16);
});
}
return '"' + x + '"';
}
};
$.toJSON = function(v) {
var f = isNaN(v) ? s[typeof v] : s['number'];
if (f) return f(v);
};
$.parseJSON = function(v, safe) {
if (safe === undefined) safe = $.parseJSON.safe;
if (safe && !/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(v))
return undefined;
return eval('('+v+')');
};
$.parseJSON.safe = false;
})(jQuery);
原生js
if (typeof JSON !== 'object') { JSON = {}; } (function() { 'use strict'; function f(n) { return n < 10 ? '0' + n : n; } if (typeof Date.prototype.toJSON !== 'function') { Date.prototype.toJSON = function(key) { return isFinite(this.valueOf()) ? this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z' : null; }; String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function( key) { return this.valueOf(); }; } var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = { // table of character substitutions '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"': '\\"', '\\': '\\\\' }, rep; function quote(string) { escapable.lastIndex = 0; return escapable.test(string) ? '"' + string.replace(escapable, function(a) { var c = meta[a]; return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); }) + '"' : '"' + string + '"'; } function str(key, holder) { var i, // The loop counter. k, // The member key. v, // The member value. length, mind = gap, partial, value = holder[key]; if (value && typeof value === 'object' && typeof value.toJSON === 'function') { value = value.toJSON(key); } if (typeof rep === 'function') { value = rep.call(holder, key, value); } switch (typeof value) { case 'string': return quote(value); case 'number': return isFinite(value) ? String(value) : 'null'; case 'boolean': case 'null': return String(value); case 'object': if (!value) { return 'null'; } gap += indent; partial = []; if (Object.prototype.toString.apply(value) === '[object Array]') { length = value.length; for (i = 0; i < length; i += 1) { partial[i] = str(i, value) || 'null'; } v = partial.length === 0 ? '[]' : gap ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : '[' + partial.join(',') + ']'; gap = mind; return v; } if (rep && typeof rep === 'object') { length = rep.length; for (i = 0; i < length; i += 1) { if (typeof rep[i] === 'string') { k = rep[i]; v = str(k, value); if (v) { partial.push(quote(k) + (gap ? ': ' : ':') + v); } } } } else { for (k in value) { if (Object.prototype.hasOwnProperty.call(value, k)) { v = str(k, value); if (v) { partial.push(quote(k) + (gap ? ': ' : ':') + v); } } } } v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}'; gap = mind; return v; } } if (typeof JSON.stringify !== 'function') { JSON.stringify = function(value, replacer, space) { var i; gap = ''; indent = ''; if (typeof space === 'number') { for (i = 0; i < space; i += 1) { indent += ' '; } } else if (typeof space === 'string') { indent = space; } rep = replacer; if (replacer && typeof replacer !== 'function' && (typeof replacer !== 'object' || typeof replacer.length !== 'number')) { throw new Error('JSON.stringify'); } return str('', { '': value }); }; } if (typeof JSON.parse !== 'function') { JSON.parse = function(text, reviver) { var j; function walk(holder, key) { var k, v, value = holder[key]; if (value && typeof value === 'object') { for (k in value) { if (Object.prototype.hasOwnProperty.call(value, k)) { v = walk(value, k); if (v !== undefined) { value[k] = v; } else { delete value[k]; } } } } return reviver.call(holder, key, value); } text = String(text); cx.lastIndex = 0; if (cx.test(text)) { text = text.replace(cx, function(a) { return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); });
}
if (/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { j = eval('(' + text + ')'); return typeof reviver === 'function' ? walk({ '': j }, '') : j; } throw new SyntaxError('JSON.parse'); }; } }());
相关推荐
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端数据传输。...在实际开发中,根据项目的依赖和需求,选择合适的JSON库并利用其提供的工具类,可以有效地处理JSON数据。
1. **JSON有效性校验**:工具类应具备检查JSON字符串是否符合JSON规范的能力。这可以通过调用JSON库提供的解析方法来实现,如果解析过程中没有抛出异常,那么我们可以认为JSON字符串是有效的。 2. **解析JSON到Java...
这个工具类“json-lib 解析json串工具类”就是专门为了解析JSON字符串而设计的,它能够帮助开发者有效地将JSON数据转换为Java对象,反之亦然。 1. **JSON对象与Java对象的映射** `json-lib`库支持将JSON对象转换为...
LitJson是C#编程语言中一个轻量级的Json解析库,主要用来处理Json格式的数据。Json(JavaScript Object Notation)是一种轻量级的数据交换...在开发过程中,理解并熟练掌握它的使用,能够帮助你更有效地处理Json数据。
在实际开发中,使用JSON工具类时,常见的操作包括: - **序列化**:将Java对象转换为JSON字符串,这在发送HTTP请求或保存数据到文件时非常有用。 - **反序列化**:将JSON字符串解析为Java对象,便于在程序中使用...
`JsonUtils`工具类提供了简单而强大的功能,可以有效地帮助开发者在Java项目中处理JSON数据。通过合理使用这两个方法,可以极大地提高开发效率,减少手动处理JSON数据的工作量。同时,需要注意确保JSON字符串和Java...
标题中的"jsonview工具"是指专门用于查看和处理JSON数据的工具。这类工具通常提供友好的界面,帮助用户清晰地呈现复杂的JSON结构,并能辅助识别和修复潜在的语法错误。 描述中提到的“查看json串工具”意味着JSON...
在IT行业中,处理JSON数据是常见的任务之一,特别是在Java编程中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。当我们面临大量JSON数据时,有时...
在Java开发中,数据转换是常见的操作之一,特别是在处理JSON格式的数据时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛应用于Web服务和前后端交互。本篇将详细介绍如何使用两个Java工具...
在处理JSON数据时,一个好用的工具至关重要,能够帮助开发者快速理解、验证和操作JSON结构。 标题中的“一款很好用的JSON工具”指的是专门设计用于处理JSON数据的软件或在线平台。这样的工具通常提供友好的用户界面...
总的来说,JSON字符串解析工具,如HiJson 2.1.2_jdk64.exe,是开发和调试过程中不可或缺的工具,它们帮助我们更好地理解和处理JSON数据,从而提高工作效率。无论你是前端开发者、后端开发者还是数据分析师,掌握这类...
在实际使用中,这样的工具不仅可以帮助开发者调试API,也可以用于查看和修改配置文件,或者在处理JSON格式的日志时进行数据提取。通过公开源代码,这款工具为开发者提供了自定义和扩展的可能性,例如添加新的解析...
通过熟练使用这类工具,开发者可以更有效地处理JSON数据,提高工作效率,降低错误发生的可能性。因此,了解并掌握一款好的JSON显示工具,对于从事Web开发或与JSON数据打交道的人员来说至关重要。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。它基于JavaScript的一个...了解和熟练使用这类工具可以提高工作效率,减少错误,使得处理JSON数据变得更加便捷。
### Java对象转JSON工具类详解 #### 一、引言 在现代软件开发过程中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式被广泛使用。它基于JavaScript的一个子集,采用完全独立于编程语言的文本...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间的数据传输。...对于处理JSON数据的初学者和经验丰富的开发者而言,这类工具都是日常工作中的一大助手。
3. **cStringBuilder.cls**:在VB6中,字符串操作往往不如现代语言那么高效,`cStringBuilder` 类可能提供了更有效的字符串构建功能,这对于大量处理字符串(如生成JSON字符串)非常有用。 4. **VBJSON.exe**:这...
7. **性能优化**:高效的转换算法是这类工具的关键,快速处理大型JSON文件以减少等待时间。 在使用json2bin工具时,需要注意的是,由于二进制格式的特定性,转换过程可能会丢失JSON的一些特性,如注释和顺序。此外...
3. **JSONParser**:这是解析JSON数据的主要工具类,它提供了`parse()`方法,可以从JSON格式的字符串或输入流中解析出JSON对象或数组。 4. **JSONStringer** 和 **JSONWriter**:这两个类用于生成JSON格式的字符串...
Gdata JSON解析工具则是一个专门处理JSON数据的第三方库,它为开发者提供了在编程环境中解析和生成JSON的有效手段。 Gdata JSON库最初是由Google开发的,主要面向C++程序员,它提供了一系列API,使得开发者可以方便...