프론트 Json 과 String 의 상호 전환 솔 루 션

3346 단어 String
JSon 형식 은 현재 웹 프로젝트 개발 에서 점점 중요 해 지고 있 습 니 다. JSon 형식 에 대해 서 는 JSon 형식의 데 이 터 를 문자열 형식 으로 변환 하거나 문자열 형식의 데 이 터 를 JSon 대상 의 데이터 로 변환 해 야 합 니 다.
 
    자바 배경 에서 이러한 상호 전환 도 구 는 이미 매우 많다. 예 를 들 어 org. json, fastjson, gson 등 은 셀 수 없 이 많다.그래서 여기 서 이 를 검토 하지 않 고 옥상 에서 json 과 string 을 전환 하 는 해결 방안 을 제시 합 니 다.
 
JSon 변환 도움말 클래스:
var JsonUtils = function(){
	
	var cache = [];
			
	var _json2String = function(jsonObj){
				
		var type = typeof jsonObj;
				
		if('object' == type){
					
			if(Array == jsonObj.constructor){
				type = "array";
			}else if(RegExp == jsonObj.constructor){
				type = "regexp";
			}else{
				type = "object";
			}
		}
				
		switch(type){
			case 'undefined' :
			case 'unknown' :
				return;
			case 'function' :
			case 'boolean' :
			case 'regexp' :
				return jsonObj.toString();
			case 'number' :
				return isFinite(jsonObj) ? jsonObj.toString() : 'null';
			case 'string' :
				return '"' + jsonObj.replace(/(\\|\")/g, "\\$1").replace(/
|\t|\r/g, function(){ var a = arguments[0]; return (a == '
')? '\
' : (a == '\r') ? '\\r' : (a == '\t') ? '\\t' : ""; }) + '"'; case 'object' : if(jsonObj === null) return 'null'; var results = []; for(var property in jsonObj){ if('parentNode' == property) continue; var value = _json2String(jsonObj[property]); if(value != undefined){ var temp = _json2String(property); results.push(temp + ':' + value); } } return '{' + results.join(',') + '}'; case 'array' : var results = []; for(var i = 0; i < jsonObj.length; i += 1){ if(_isCache(jsonObj[i].tId)){ continue; }else{ cache.push(jsonObj[i].tId); var value = _json2String(jsonObj[i]); if(value !== undefined){ results.push(value); } } } return '[' + results.join(',') + ']'; } }; var _isCache = function(currentId){ for(var i = 0; i< cache.length; i += 1){ if(currentId === cache[i] ){ return true; } } return false; }; var _jsonStr2JsonObj = function(jsonStr){ try{ return $.parseJSON(jsonStr); }catch(e){ throw "parse json string error"; } }; return{ jsonStr2JsonObj : function(jsonStr){ return _jsonStr2JsonObj(jsonStr); }, json2String : function(jsonObj){ return _json2String(jsonObj); } }; }();
 
테스트 코드:
var json = {'id' : '123'};
var jsonStr = JsonUtils.json2String(json);
alert(jsonStr);
 

좋은 웹페이지 즐겨찾기