常见的数组与字符串及对象与对象字符串之间的转换汇总

数组与字符串之间的转换
1、数组转字符串

arr.join() // 将数组元素连接起来以构建一个字符串
arr.toString() //将数组转换成一个字符串

2、字符串转数组

str.split(’,’)
以上方法均可在括号中使用 ‘,’ 进行字符的分割

eg:
let str = ‘’
console.log(str.split(’,’)) // [’’]
//无法直接转换成 []
/**
* 可以进行if语句的判断,判断字符串是否为空,为空直接给[]
*否则传递数据时,在将数组转成字符串时,会出现字符串之前有一个逗号。
*/
3.json类型的字符串转换为json对象及取值
 var jsonString = ‘{“bar”:“property”,“baz”:3}’;
 var jsObject = JSON.parse(jsonString); //转换为json对象
alert(jsObject.bar); //取json中的值

var st = JSON.stringify(jsObject); //转换为json类型的字符串 
console.log(st)

4.json数组类型的字符串转换为json及取值 和json对象转换为转换为json字符串
//json数组类型字符串取值
var jsonStr = ‘[{“id”:“01”,“open”:false,“pId”:“0”,“name”:“A部门”},{“id”:“01”,“open”:false,“pId”:“0”,“name”:“A部门”},{“id”:“011”,“open”:false,“pId”:“01”,“name”:“A部门”},{“id”:“03”,“open”:false,“pId”:“0”,“name”:“A部门”},{“id”:“04”,“open”:false,“pId”:“0”,“name”:“A部门”}, {“id”:“05”,“open”:false,“pId”:“0”,“name”:“A部门”}, {“id”:“06”,“open”:false,“pId”:“0”,“name”:“A部门”}]’;
var jsonObj = JSON.parse(jsonStr);//转换为json对象
for(var i=0;i<jsonObj.length;i++){
alert(jsonObj[i].id); //取json中的值
}
console.log(jsonObj)
var jsonStr1 = JSON.stringify(jsonObj)
console.log(jsonStr1+“jsonStr1”)

总结:需要转成json对象,使用JSON.parse(str)
需要转成json类型的各种字符串,使用JSON.stringify(arr)

var arr = [1,2,3,4];
console.log(arr.toString()); // 1,2,3,4
console.log(JSON.stringify(arr)); // [1,2,3,4]
arr.toString()是将数组转化成字符串,因此不带 [ ]
而JSON.stringify(arr)是从一个对象解析出JSON字符串,是带[]的
建议 当需要操作的元素为数组时,使用toString(),当需要操作的对象时json对象时,使用JSON.stringif()
拓展:toString()也可以将false,或者true,或者number类型转换成字符串,.toString()可以将所有的的数据都转换为字符串,但是要排除null 和 undefined

总结:
数组是一个特殊的json对象
个人建议,如果是数组需要准换成字符串,使用arr.join(),但是join会有一个误区,当arr=[]的时候、后,join会转换成[’’],需要手动条件判断是否为空,为空直接给[]
如果是数字类型,布尔类型等等需要准换成字符串,可以使用toString()进行转换
如果是
json对象类型
转换成字符串类型,也就是json字符串对象和json数组对象,可是使用JSON.stringify(obj)来进行转换
字符串需要转成数组的时候,使用str.split()就可以
如果要将
json格式的字符串
转换成json对象的时候,可以使用JSON.parse(jsonStr)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值