JS 中 JSON 对象与字符串之间的相互转换
在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,这样后台
接受的时候Request多个很麻烦,此时要按照类的格式 或 集合的形式进行传递。
1、传递单一对象Json
例如:前台按类的格式传递JSON对象:
var jsonUser = "{\"UserName\":\"" + userName + "\",\"Sex\":\"" + sex + "\",\"City\":\"" + city + "\",\"Age\":\"" + age+ "\"}";
如拼出的 jsonUser 无转义符号,需要 var jsonArrayFinal = JSON.stringify(jsonArray); 进行转换后再传递。
$.ajax(
{
type: "post",
url: "UserHandler.ashx",
data: { userInfo: jsonUser, flag: "1", key: "1" },
dataType: "text",
success: function(data) {
$("#divMsg").html(data);
}
});
2、传递集合类型Json
如果前台传递多个类格式的 JSON 数组,也就是集合类型,如下:
[{"name":"a"},{"name","b"},{"name","c"}]
此时必须使用 JSON.stringify 将数组对象转换成字符串,再进行AJAX传递即可。
比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象:
var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的 stringify() 和 parse() 方法。
JSON.stringify(obj) 将JSON转为字符串,JSON.parse(string) 将字符串转为JSON格式;
上面的转换可以这么写:
var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
var aToStr=JSON.stringify(a);
var bToObj=JSON.parse(b);
alert(typeof(aToStr)); //string
alert(typeof(bToObj));//object
ie8(兼容模式)、ie7和ie6没有JSON对象,不过http://www.json.org/js.html提供了一个json.js,这样ie8(兼容模式)、ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;可以在 https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。
ie8(兼容模式)、ie7、ie6可以使用 eval() 将字符串转为JSON对象,
var c='{"name":"Mike","sex":"女","age":"29"}';
var cToObj=eval("("+c+")");
alert(typeof(cToObj));
jQuery中也有将字符串转为JSON格式的方法 jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。当然如果有兴趣可以自己封装一个jQuery扩展,jQuery.stringifyJSON(obj) 将JSON转为字符串。
JS 中 JSON 对象与字符串之间的相互转换的更多相关文章
- Json数组操作小记 及 JSON对象和字符串之间的相互转换
[{"productid":"1","sortindex":"2"},{"productid":&q ...
- JSON对象与字符串之间的相互转换
<html> <head> <meta name="viewport" content="width=device-width" ...
- JSON对象与字符串之间的相互转换 - CSDN博客
原文:JSON对象与字符串之间的相互转换 - CSDN博客 <html> <head> <meta name="viewport" content=& ...
- JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法. JSON.stringify(obj)将JSO ...
- JSON对象和字符串之间的相互转换
比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象: var a={"name":"tom","sex":"男&quo ...
- 解析JSON对象与字符串之间的相互转换
在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,这样后台 接受的时候Request多个很麻烦 ...
- 小tips:JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法. JSON.stringify(obj)将JSO ...
- JSON对象和字符串之间的相互转换 – JSON.parse() 和 JSON.stringify()
所有现代浏览器都支持 JSON 对象,有两个非常有用的方法来处理 JSON 格式的内容: JSON.parse(string) :接受一个 JSON 字符串并将其转换成一个 JavaScript 对象 ...
- js中json对象和字符串的转换
JSON.parse() : 字符串-->json对象 var str = '{"name":"huangxiaojian","age" ...
随机推荐
- ASP.NET Web API实践系列11,如何设计出优秀的API
本篇摘自:InfoQ的微信公众号 在设计API的时候考虑的问题包括:API所使用的传输协议.支持的消息格式.接口的控制.名称.关联.次序,等等.我们很难始终作出正确的决策,很可能是在多次犯错之后,并从 ...
- Delphi 获取命令行输出的函数
function GetDosOutput(CommandLine: string; Work: string = 'C:\'): string; var SA: TSecurityAttribute ...
- CCBAnimationManager
#ifndef __CCB_CCBANIMATION_MANAGER_H__ #define __CCB_CCBANIMATION_MANAGER_H__ #include "cocos2d ...
- HTML5学习笔记简明版(8):新增的全局属性
contenteditable属性 不论什么元素使用contenteditable属性的话,代表该元素是一个可编辑的区域. 用户能够改变元素的内容以及操作标记.比如: <p contentedi ...
- python测试开发django-33.admin后台一对一关系OneToOneField
前言 假如有一张表(Card)记录用户的卡号信息和用户名,现在需要新增一个小功能,记录用户的手机号,邮箱和住址等更多信息. 为了不影响原来的表设计,可以新增一张表(CardDetail),专门记录用户 ...
- resin 4.0.xx 版破解方法
how to crack resin 4.0.2x resin 4.0.3x. 工具:jd http://jd.benow.ca/ 利用jd打开resin 4.0.xx目录下的lib/pro.jar ...
- 通过layer-list自定义EditText背景
假设activity的背景是白色,第一层也(就是最底层)是绿色:第二次是白色,但是距离底部有一段小偏移,目的是为了做出文本框两边的小勾:第三层也是白色,但是它距离底部和左右两边都有一定距离.通过三层配 ...
- golang导入包的几个说明:import
导入包: 标准包使用的是给定的短路径,如"fmt"."net/http" 自己的包,需要在工作目录(GOPATH)下指定一个目录,improt 导入包,实际上就 ...
- eclipse的块选择模式
第一步:Alt+shift+a打开Toggle Block Selection Mode(块选择模式开关) 第二步:点击Toggle Block Selection 第三步:选择多行,同时编辑
- 动态SQL(章节摘要)
1,使用动态SQL能够在依赖对象不存在时创建子程序. 2.动态SQL主要利用EXECUTE IMMEDIATE语句运行DML,DDL,DCL等语句操作. 3,假设使用了绑定变量,则必须在EXECUTE ...