求助:怎么把js对象转为字符串

JavaScript016

求助:怎么把js对象转为字符串,第1张

toString()

使用对象的toString函数把对象转化为字符串。

// plain object

var obj = {}

obj.toString() // 返回"[object Object]" // 基本数据封装类

var num = new Number(2.2)

num.toString() // 返回"2.2" // 数组

var arr = [1,2,3]

arr.toString() // 返回"1,2,3" // 正则对象

var reg = new RegExp('\\d')

reg.toString() // 返回"/\d/" // 自定义对象

function Person(name, age) {

    this.name = name

    this.age = age

}

Person.prototype.toString = function () {

    return 'name is ' + this.name + 'and age is ' + this.age

}

var p = new Person('Scott', 31)

p.toString() // 返回"name is Scott and age is 31"

JSON.stringify

使用json序列化的方式把对象转换为字符串,该方式会把一个对象中所有标记为

enumerable的属性序列化为json格式的字符串。

// plain object

var obj = {name: 'Scott', age: 31}

JSON.stringify(obj) // 返回"{"name":"Scott","age":31}" // 基本数据封装类

var num = new Number(2.2)

JSON.stringify(num) // 返回"2.2" // 数组

var arr = [1,2,3]

JSON.stringify(arr) // 返回"[1,2,3]" // 自定义类型

function Person(name, age, maritalStatus) {

    this.name = name

    this.age = age

    // 由于婚姻状况是隐私的属性,不希望序列化字符串的时候暴露给他人,因此这里设置属性为不可枚举的

    Object.defineProperty(this, 'maritalStatus', {

        enumerable: false,

        configurable: false,

        writable: true,

        value: maritalState || 'unknown'

    })

    this.maritalStatus = maritalStatus

}

var p = new Person('Scott', 31, 'married')

// 序列化的时候是没有maritalStatus的

JSON.stringify(p) // 返回"{"name":"Scott","age":31}"

// 但是maritalStatus确实真实存在于对象中的

p.maritalStatus // 返回"married"

1、先用js定义一个变量,就是一个字符串的变量,如图,字符串用逗号隔开。

2、要把字符串转化成数据,我们可以使用JS内置的方法,split方法就行了,这个方法要注意的地方,就是参数,由于字符串是用逗号隔开的,参数就输入逗号就行了。

3、为了验证效果,可以把结果输出到控制台上,使用console.log方法,把结果输出就行了。

在4、脚本里,直接调用刚才的方法,当页面打开后,就会直接执行。

5、打开浏览器的开发者工具,点击‘控制台’。

6、在这里就可以看到输出的结果了,可以看到这个结果就是一个数组。

7、点击展开这个数组,可以看到数组每一项的内容。

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, '":""')

}