一、字符串转换成对象
将字符串转换成对象是JavaScript编程中非常常见的操作,它的常用方法主要有两种:eval()和 JSON.parse()。其中,eval()的弊端在于会执行字符串中所有的JavaScript代码,存在安全风险,因此建议使用JSON.parse()方法进行字符串转换。
//使用JSON.parse()将字符串转换为对象 let str = '{"name": "John", "age": 30, "city": "New York"}'; let obj = JSON.parse(str); console.log(obj.name); // "John"
这样就可将一个包含JSON数据的字符串转换成一个JavaScript对象,并可以使用对象的属性来获取其中的数据值。
二、字符串转换成对象数组
字符串转换成对象数组也是比较常见的操作,通常是从后端获取到的JSON数据。假设从服务端获取到以下JSON数据:
let jsonStr = '[{"name":"John","age":30},{"name":"Mike","age":20}]';
要将该JSON数据转换成JavaScript对象数组,使用JSON.parse()即可:
let jsonObjArr = JSON.parse(jsonStr); console.log(jsonObjArr[0].name); //"John"
这里的jsonObjArr就是一个JavaScript对象数组,可以使用数组的下标访问其中的每个对象,然后再通过对象的属性获取对应的值。
三、字符串转换成对象列表型
有时候从服务端获取到的JSON数据格式可能是一个包含多个对象的对象,这种数据通常被称为“对象列表型”,转换方法如下:
let jsonObjStr = '{"students":[{"name":"John","age":30},{"name":"Mike","age":20}]}'; let jsonObj = JSON.parse(jsonObjStr); console.log(jsonObj.students[0].name); //"John"
这里的jsonObj即为一个包含students属性的对象,该属性的值是一个JavaScript数组对象。使用该方式可以方便地获取嵌套在对象中的列表型数据。
四、将JSON字符串转换成对象
在JavaScript中,JSON与对象是可以互相转换的,因此要将JSON字符串转换成JavaScript对象也是非常简单的,使用JSON.parse()方法即可:
let json = '{"name":"John", "age":30, "city":"New York"}'; let obj = JSON.parse(json); console.log(obj.name); //"John"
这里使用了JSON.parse()方法将json字符串转换成JavaScript对象。反之,要将JavaScript对象转换成JSON字符串,可以使用JSON.stringify()方法。
五、字符串转换成时间标识
在JavaScript中,时间可以表示为时间戳或者Date对象等多种格式。如果需要将字符串转换成时间标识,可以使用Date.parse()方法:
let dateStr = "2020-01-01T00:00:00.000Z"; let date = new Date(Date.parse(dateStr)); console.log(date); //Wed Jan 01 2020 08:00:00 GMT+0800 (中国标准时间)
这里使用了Date.parse()方法将字符串时间标识转换成了一个Date对象。需要注意的是,不同的日期字符串格式需要使用不同的方法进行转换。
六、字符串转换成数字
将字符串转换成数字也是JavaScript编程中常用的操作。JavaScript提供了parseInt()和parseFloat()两个方法来完成这个操作:
let str1 = "123"; let str2 = "123.45"; let num1 = parseInt(str1); let num2 = parseFloat(str2); console.log(num1); //123 console.log(num2); //123.45
这里的parseInt()和parseFloat()分别将字符串转换成整型和浮点型数字。
七、JS字符串转换为对象
在JavaScript中将字符串转换为对象还可以使用Function构造函数,使用该方法应该慎重,因为它会执行字符串中的所有代码:
let str = '{"name":"John", "age":30, "city":"New York"}'; let obj = new Function("return " + str)(); console.log(obj.name); //"John"
这里使用了Function构造函数将字符串转换成了JavaScript对象,使用return关键字返回对象。
八、XML字符串怎么转换成对象
要将XML字符串转换成JavaScript对象,可以使用使用DOMParser对象的parseFromString()方法,但是需要注意的是,该方法只能将XML字符串转换成XML DOM对象,需要进一步处理才能转换为JavaScript对象。
let parser = new DOMParser(); let xmlStr = '<bookstore><book><title>Harry Potter</title><author>J.K. Rowling</author><year>2005</year></book></bookstore>'; let xmlDoc = parser.parseFromString(xmlStr, "text/xml"); let book = xmlDoc.getElementsByTagName("book")[0]; let title = book.getElementsByTagName("title")[0]; let author = book.getElementsByTagName("author")[0]; let year = book.getElementsByTagName("year")[0]; console.log(title.childNodes[0].nodeValue); //"Harry Potter"
这里的xmlDoc就是一个XML DOM对象,可以使用它的方法和属性对XML文档进行操作。
总结
以上就是JavaScript中字符串转换成对象的详细介绍。无论是从JSON格式的字符串中获取数据,还是将XML字符串转换成对象,JavaScript都提供了丰富的API来实现。希望这篇文章能够对大家有所帮助。