在javascript中,字符串(string)和对象(object)是两种不同的类型,它们存储的数据也有很大的区别。在web开发中,我们经常会遇到需要将字符串转换成对象数组的情况,例如从服务器获取到的json数据。本文将介绍几种将字符串转换成对象数组的方法。
方法一:使用json.parse()
在javascript中,可以使用json.parse()方法将一串json格式的字符串转换成一个对象或数组。json.parse()方法的原理是将json字符串解析成一个javascript对象或数组。
例如,我们有以下json字符串:
var jsonstring = '[{"name":"john","age":30,"city":"new york"},{"name":"jane","age":25,"city":"los angeles"},{"name":"bob","age":40,"city":"chicago"}]';
使用json.parse()方法将其转换成对象数组:
var jsonobjectarray = json.parse(jsonstring);
我们可以使用循环语句遍历该数组,输出每个对象的属性:
for(var i=0; i<jsonobjectarray.length; i++){ console.log("name: "+jsonobjectarray[i].name+", age: "+jsonobjectarray[i].age+", city: "+jsonobjectarray[i].city);}
方法二:使用eval()
eval()是javascript中的一个函数,可以将传入的字符串参数当作javascript代码进行执行。因此,我们可以利用eval()函数将json格式的字符串转换成对象或数组。
例如,我们有以下json字符串:
var jsonstring = '[{"name":"john","age":30,"city":"new york"},{"name":"jane","age":25,"city":"los angeles"},{"name":"bob","age":40,"city":"chicago"}]';
使用eval()函数将其转换成对象数组:
var jsonobjectarray = eval("("+jsonstring+")");
同样,我们可以使用循环语句遍历该数组,输出每个对象的属性:
for(var i=0; i<jsonobjectarray.length; i++){ console.log("name: "+jsonobjectarray[i].name+", age: "+jsonobjectarray[i].age+", city: "+jsonobjectarray[i].city);}
需要注意的是,eval()函数可能会存在安全隐患,不建议在生产环境中使用,而应该使用json.parse()方法。
方法三:使用字符串分割和替换
一种比较老旧的方法是利用字符串分割和替换的方式将字符串转换成对象数组。
例如,我们有以下json字符串:
var jsonstring = '[{"name":"john","age":30,"city":"new york"},{"name":"jane","age":25,"city":"los angeles"},{"name":"bob","age":40,"city":"chicago"}]';
首先,我们需要将字符串中用于分割对象的逗号换成分号,将大括号换成方括号,得到一个合法的javascript数组声明:
jsonstring = jsonstring.replace(/}/g, '},');jsonstring = jsonstring.replace(/,$/, '');jsonstring = jsonstring.replace(/{/g, '[');jsonstring = jsonstring.replace(/}/g, '}]');
然后,使用eval()函数将其转换成对象数组:
var jsonobjectarray = eval(jsonstring);
同样,我们可以使用循环语句遍历该数组,输出每个对象的属性:
for(var i=0; i<jsonobjectarray.length; i++){ console.log("name: "+jsonobjectarray[i].name+", age: "+jsonobjectarray[i].age+", city: "+jsonobjectarray[i].city);}
需要注意的是,这种方法只适用于json格式比较简单的情况,对于嵌套比较深的json格式,该方法将失效。
总结
以上就是几种将字符串转换成对象数组的方法。在实际开发中,推荐使用json.parse()方法将json格式的字符串转换成对象或数组,它的效率高、安全性高,也更符合语言本身的规范。如果需要支持更老旧的浏览器版本,可以考虑使用eval()函数或字符串分割和替换的方式。
以上就是将string转换成对象数组 javascript的详细内容。