JS中 怎么将json对象转化成字符串

JavaScript012

JS中 怎么将json对象转化成字符串,第1张

Obj2str: function(o) {

if (o == undefined) {

return ""

}

var r = []

if (typeof o == "string") return "\"" + o.replace(/([\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\""

if (typeof o == "object") {

if (!o.sort) {

for (var i in o)

r.push("\"" + i + "\":" + fn.Obj2str(o[i]))

if (!!document.all &&!/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)) {

r.push("toString:" + o.toString.toString())

}

r = "{" + r.join() + "}"

} else {

for (var i = 0i <o.lengthi++)

r.push(fn.Obj2str(o[i]))

r = "[" + r.join() + "]"

}

return r

}

return o.toString().replace(/\"\:/g, '":""')

}

1、javascript里面的数组都是关联数组吧?js对象的本质就是关联数组。索引数组也就是常说的数组,数组是对象,所以数组的本质也是关联数组,但通常没人这么说。2、唯一区别就是:索引数组的索引只能是0和正整数,但它是有序的。关联数组的索引很宽松,但关联数组是无序的,就这个。3、json对象是严格版本的关联数组。4、至少在chrome下,索引数组和关联数组的速度是一样的。5、索引数组的好处就是格式简单,关联数组的好处是键可以任意定义。现代浏览器中提供了JSON.stringify()方法将数组,对象转成json。JSON.stringify把一个对象转换成json字符串,JSON.parse把一个json字符串解析成对象。不支持的可以引入json2.js$.fn.stringifyArray=function(array){returnJSON.stringify(array)}$.fn.parseArray=function(array){returnJSON.parse(array)}然后调用:$("").stringifyArray(array)

一、JSON字符串转换为JSON对象

要使用上面的str1,必须使用下面的方法先转化为JSON对象:

//由JSON字符串转换为JSON对象

var obj = eval('(' + str + ')')

或者

var obj = str.parseJSON()//由JSON字符串转换为JSON对象

或者

var obj = JSON.parse(str)//由JSON字符串转换为JSON对象

然后,就可以这样读取:

Alert(obj.name)

Alert(obj.sex)

特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。

二、可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。

例如:

var last=obj.toJSONString()//将JSON对象转化为JSON字符

或者

var last=JSON.stringify(obj)//将JSON对象转化为JSON字符

alert(last)