当前位置:   article > 正文

JSON.parse 转换字符串样式的数组_字符串转数组 json.parse

字符串转数组 json.parse

有时候后端返回的数据中有数组或对象的结构,却仍然以字符串的形式返回给前端;

  1. let data = {
  2. records: [
  3. {
  4. "id": "1",
  5. "info": '[{"name":"张三","age":60},{"name":"李四","age":80}]'
  6. },
  7. {
  8. "id": "2",
  9. "info": '[{"name":"王五","age":90},{"name":"郑六","age":100}]'
  10. }
  11. ]
  12. }
  13. data.records.forEach(element => {
  14. for(let i = 0, len = element.info.length; i < len; i++) {
  15. console.log(element.info[i].name) // undefined
  16. }
  17. })

如上面代码中的info属性值就是一个字符串类型,前端拿到后是不能直接使用的,需要用 JSON.parse 转化一下 

  1. data.records.forEach(element => {
  2. element.info = JSON.parse(element.info)
  3. for(let i = 0, len = element.info.length; i < len; i++) {
  4. console.log(element.info[i].name) //张三 李四 王五 郑六
  5. }
  6. })

在使用JSON.parse时,处理的参数需要是严格的json格式,key值要使用双引号包括,否则会出错;下面这种写法就会报错

"info": "[{'name':'王五','age':90},{'name':'郑六','age':100}]" // Uncaught SyntaxError: Unexpected token ' in JSON at position 2

如果字符串外层使用双引号,内层也使用双引号,可以使用 \ 转义一下

  1. let data = {
  2. records: [
  3. {
  4. "id": "1",
  5. "info": "[{\"name\":\"张三\",\"age\":60},{\"name\":\"李四\",\"age\":80}]"
  6. },
  7. {
  8. "id": "2",
  9. "info": “[{\"name\":\"王五\",\"age\":90},{\"name\":\"郑六\",\"age\":90}]”
  10. }
  11. ]
  12. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/509611
推荐阅读
相关标签
  

闽ICP备14008679号