`
zhengkaifl
  • 浏览: 24629 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

前台Json与String相互转换解决方案

 
阅读更多

    Json格式在当前的Web项目开发中已经越来越重要,面对Json格式,我们时常需要将Json格式的数据转换成字符串形式,或者将字符串形式的数据转换为Json对象的数据。

 

    在Java后台中,这种相互转换的工具已经有很多,例如: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(/\n|\t|\r/g, function(){
							var a = arguments[0];
							return (a == '\n')? '\\n' : (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);
 

 

分享到:
评论

相关推荐

    javaScript如何处理从java后台返回的list

    网上搜了搜大家的解决方案…最好的当然是把List集合转成json格式传到界面上。这样js里面操作也简单,页面也没有影响。 解决: 将List&lt;String&gt; 转成json,传到界面。js中使用var arr = eval(‘${list}’);将list转成...

    springmvc图片上传及json数据转换过程详解

    在Spring框架中,Spring MVC是构建Web应用程序的模型视图控制器(MVC)实现。...本知识点将详细解释Spring MVC中图片上传以及JSON...这些知识点为Web开发人员提供了基于Spring MVC框架的文件上传和数据交互的解决方案。

    Spring MVC不能直接接收list类型参数的问题

    这种方法适用于 JSON 格式的请求体,通过 `@RequestBody` 注解,Spring MVC 可以自动将请求体中的 JSON 数据转换为 Java 对象。 #### 总结 以上介绍了三种解决 Spring MVC 无法直接接收 List 类型参数的方法。这些...

    一个适合新手学习的电商项目

    它是目前比较流行的企业业务整合的解决方案之一。 用户登录: 1、接收用户名和密码 2、校验用户名密码 3、生成token,可以使用UUID 4、把用户信息写入redis,key就是token 5、把token写入cookie。 6、返回...

    解决表单post,get到springMVC后台乱码的问题

    解决方案 要解决表单post,get到springMVC后台乱码的问题,需要在多个方面进行调整: 1. 前台表单编码:在前台表单中,需要指定编码方式为 UTF-8,例如在 HTML 中添加 `&lt;meta charset="UTF-8"&gt;`。 2. Spring MVC ...

    解决JS无法调用Controller问题的方法

    本篇文章将深入探讨这个问题,并提供解决方案。 首先,我们需要理解JS与Controller之间的通信机制。在大多数情况下,这种通信是通过HTTP请求实现的,尤其是使用Ajax技术。Ajax(Asynchronous JavaScript and XML)...

    layui表格 返回的数据状态异常的解决方法

    在描述中提到,有的解决方案是将返回的数据转换为JSON对象,比如使用`JSONObject`类(可能是Java的org.json库),然后逐个字段填充。但这种方法可能显得较为繁琐,尤其是在处理大量数据或频繁调用API的情况下。 ...

    解决angular的$http.post()提交数据时后台接收不到参数值问题的方法

    另一种解决方案是调整后端代码以处理JSON数据。在Spring MVC中,可以使用`@RequestBody`注解来解析JSON对象: ```java // 修改后的Java Spring MVC 示例 @PostMapping("/loginForm") public ResponseEntity&lt;User&gt; ...

    黑马面试宝典知识点复习

    - **大数据量访问解决方案**:缓存策略、分库分表、读写分离等。 - **遇到的问题及解决办法**:技术难题、团队合作、时间管理等方面。 - **项目收获**:个人成长、团队协作经验等。 - **构建工具与模块划分**:构建...

    ExtAspNet_v2.3.2_dll

    注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: http://extaspnet.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: http://extaspnet.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail...

Global site tag (gtag.js) - Google Analytics