博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSON字符与JSON对象的相互转换
阅读量:4957 次
发布时间:2019-06-12

本文共 1752 字,大约阅读时间需要 5 分钟。

JSON字符转对象

var stringToJson = function(data) {	if ( typeof data !== "string" || !data ) {		return null;	}	// Make sure leading/trailing whitespace is removed (IE can't handle it)	data = jQuery.trim(data);	// Make sure the incoming data is actual JSON	// Logic borrowed from http://json.org/json2.js	if (/^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")	.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]")	.replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) {		// Try to use the native JSON parser first		return window.JSON && window.JSON.parse ?			window.JSON.parse(data) :			(new Function("return " + data))();	} else {		jQuery.error( "Invalid JSON: " + data );	}}

JSON对象转字符

var jsonToString = function(obj) {	switch(typeof(obj)){		case 'string':			return '"' + obj.replace(/(["\\])/g, '\\$1') + '"';		case 'array':			return '[' + obj.map(jsonToString).join(',') + ']';		case 'object':			if(obj instanceof Array) {				var strArr = [];				var len = obj.length;				for(var i=0; i
JSON对象转字符
function arrayToJson(o) {	var r = [];	if(typeof o == "string") return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\"";	if(typeof o == "object") { 		if(!o.sort) {			for (var i in o) {				r.push(i + ":" + arrayToJson(o[i])); 				if (!!document.all && !/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)) { 					r.push("toString:" + o.toString.toString()); 				}			}			r = "{" + r.join() + "}"; 		} else { 			for (var i = 0; i < o.length; i++) {				r.push(arrayToJson(o[i])); 			}			r = "[" + r.join() + "]";		}		return r;	}	return o.toString();}

转载于:https://www.cnblogs.com/phpfans/archive/2011/08/03/2126212.html

你可能感兴趣的文章
『ORACLE』 内置约束(11g)
查看>>
Vue--学习过程中遇到的坑
查看>>
组件:slot插槽
查看>>
.net压缩图片质量(附demo)
查看>>
equals和==的区别
查看>>
Android6.0指纹识别开发
查看>>
java反射机制剖析(二)— Class Loader
查看>>
走进C++程序世界------异常处理
查看>>
通过用户模型,对数据库进行增删改查操作。
查看>>
去除数组中重复的元素
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1988 Cube Stacking
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
Android------三种监听OnTouchListener、OnLongClickListener同时实现即其中返回值true或者false的含义...
查看>>
MATLAB实现多元线性回归预测
查看>>
Mac xcode 配置OpenGL
查看>>
利用sed把一行的文本文件改成每句一行
查看>>
使用Asyncio的Coroutine来实现一个有限状态机
查看>>
Android应用开发:核心技术解析与最佳实践pdf
查看>>