我用于其他浏览器,比如火狐啥的,用 JSON.stringify() 方法完全能转,但是在 ie 浏览器中会报错,JSON is undefined
从而无法完成转化,在网上查的 jQuery.stringifyJSON() 方法也不能用 ,特来此处寻求大神解决一下如何在 js 中将json对象转化成json字符串
从而无法完成转化,在网上查的 jQuery.stringifyJSON() 方法也不能用 ,特来此处寻求大神解决一下如何在 js 中将json对象转化成json字符串
jquery中是使用下面的方法进行转换的。对于待转换的内容格式是有严格要求的。合格的就可以转换呀。应该不会像Lz说的转换不了。当前前提是要加载jQuery库
var _json=$.parseJSON('{"a":"1","b":"2"}');
alert(_json.a);
var a='',tpl='"{0}":"{1}"';
for(var name in json){
var b=tpl.replace('{0}',name).replace('{1}',json[name]);
a+=a.length==0?b:','+b;
}
return a;
}
var _json={"a":"1","b":"2"};
alert(jsonToString(_json))是说类似于这个样子??
function jsonArryToString(json) {
var a = '', tpl = '"{0}":"{1}"';
for (var i=0;i<json.length;i++) {
for (var name in json[i]) {
var b = tpl.replace('{0}', name).replace('{1}', json[i][name]);
a += a.length == 0 ? b : ',' + b;
}
}
return '[{' + a + '}]';
}
var _json = { "a": "1", "b": "2" };
$(function () {
var a = '[{"OrderSalesProductID":1,"ProductID":"花生","ProductNo":"0001","OrderSalesType":"1","OrderSalesID":0,"Unit":"斤","UnitPrice":12.5,"Price":7.5,"Discount":0.9,"Quantity":10,"TotalPrice":115,"Re":"无","IsDelete":false,"CreateUserID":0,"CreateDate":null,"ModifyUserID":null,"ModifyDate":null,"__status":"update"}]';
var b = $.parseJSON(a);
var c = jsonArryToString(b);
var d = JSON.stringify(b);
alert("ss");
// $.post("1.ashx", { "action": "sss" }, function (data, s1) {
// if (s1 == "success") {
// alert(c);
// }
// })
})这样写的
原来是
$(function () {
var a = '[{"OrderSalesProductID":1,"ProductID":"花生","ProductNo":"0001","OrderSalesType":"1","OrderSalesID":0,"Unit":"斤","UnitPrice":12.5,"Price":7.5,"Discount":0.9,"Quantity":10,"TotalPrice":115,"Re":"无","IsDelete":false,"CreateUserID":0,"CreateDate":null,"ModifyUserID":null,"ModifyDate":null,"__status":"update"}]';
var b = $.parseJSON(a);
var c = b.toJSONString();
$.post("1.ashx", { "action": "sss" }, function (data, s1) {
if (s1 == "success") {
alert(c);
}
})
就会提示jquery脚本错误很蛋疼啊,原来用JSON.stringify()在火狐里就能用的,但是兼容性不好,拿到这个js一引用,就都报错了,页面都没办法运行了
根据你自己的需求按上面的方法写那么一个函数能达到效果就完了。为什么一定要纠结于使用json.js呢?你上面用的方法与我简单的写的那个唯一不同的就是,你传入的其实是一个Array而已那你自己写这么两个函数,一个处理Array的转化,一个处理直接就是json类型的处理不就是了。或者统一到一个函数中。先判断是否为Array,是就使用Array遍历后再转换就是了。如果不是Array,就直接转换解决问题为首要目的,再说,自己写这么一个函数又不麻烦。没必要那么纠结
找到
switch (typeof v) {
case 'object':这句,大概在150~152行之间如果没修改过的话,增加一个是否自身调用的判断即可
switch (typeof v) {
case 'object': if (v == this) continue;//增加是否自身调用,是则继续
也可以重新下载这个文件json.js,修改过了