如何把json对象转换成字符串

 我来答
硪丨暧恋
2017-09-30 · TA获得超过8979个赞
知道大有可为答主
回答量:5336
采纳率:93%
帮助的人:2123万
展开全部

前台按类的格式传递JSON对象:

var jsonUserInfo = "{\"TUserName\":\"" + userName +
"\",\"TInterest\":\"" + interest + "\",\"TSex\":\"" + sex +
"\",\"TCity\":\"" + city + "\",\"TDetail\":\"" + detail + "\"}";如拼出的jsonUserInfo
无转义符号,需要var jsonArrayFinal = JSON.stringify(jsonArray);进行转换后再传递


$.ajax(  
                    {  
                        type: "post",  
                        url: "ReceiveHandler1.ashx",  
                        data: { userInfo: jsonUserInfo, flag: "123456", key: "654321" },  
                        dataType: "JSON",  
                        success: function(data) {  
                            $("#divShow").html(data);  
                        }  
 });


这是简单的传递,如果传递多个数组,前台传递多个类格式的JSON数组,也就是集合类型。后台处理就比较麻烦,例如:

[{"name":"a"},{"name","b"},{"name","c"}],则无法传递,此时必须使用JSON.stringify将数组对象转换成字符串,再进行AJAX传递即可。

例如:两个参数变量,一个是字符串,一个是数组。

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格式;

在转换成一般使用了两种方式,一个是JSON.stringify(obj),转换成字符串,JSON.parse(string)将字符串转为JSON格式,不过一个一个json.js的支持。不过在许多的浏览器现在都支持,可以直接使用。

上面的转换可以这么写:

[html] view plain copy print?

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  

JSON.stringify() 


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转为字符串。

这只是一种方法,还有几种方法,大家可以看一下:

1>jQuery插件支持的转换方式: 

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 
2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: 
JSON.parse(jsonstr); //可以将json字符串转换成json对象 
JSON.stringify(jsonobj); //可以将json对象转换成json对符串 
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。 

3>Javascript支持的转换方式: 
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式