js怎么把json数组转换成字符串

JavaScript09

js怎么把json数组转换成字符串,第1张

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)

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、利用原生JSON对象,将对象转为字符串:

参考代码如下:

var jsObj = {}//定义object

jsObj.testArray = [1,2,3,4,5]//初始化

jsObj.name = 'CSS3'

jsObj.date = '8 May, 2011'

var str = JSON.stringify(jsObj)//转换成string

alert(str)//弹出提示

2、重写toString()方法:

参考代码如下:

Dog.prototype.toString = function dogToString() {

var ret = 'Dog ' + this.name + ' is a ' + this.sex + ' ' + this.color + ' ' + this.breed

return ret

}