ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数组外面包了引号,怎么去掉外面的引号,变成原来的数组

2021-12-20 16:34:00  阅读:210  来源: 互联网

标签:arr eval 引号 parse JSON 数组 var 去掉 hello


为什么要写这个,因为我去看某个流量大的博主,写的太简易,容易误人子弟,所以写个详细版。


let arr = '["qq","nn","555","456"]'
let b= JSON.parse(arr)
 

这是我的答案  

然后知名博主推荐 的是


let arr = '["qq","nn","555","456"]'
let b= eval(arr)
 

这个解决办法肯定是能达到想到的效果,

但对于数据而言,如果是数据字符串对象化,数组化,请用JSON.parse,如果字符串里有计算数据处理,请用eval

  var x = 10;
  var y = 20;
  var a = eval("x * y") + "<br>";
  var b = eval("2 + 2") + "<br>";
  var c = eval("x + 17") + "<br>";

  // 答案 
   200
   4
   27 

不信请看下面测试数据

var A = "{  a: 1 , b : 'hello' }";
var B = "{  'a': 1 , 'b' : 'hello' }";
var C = "{'a':1,'b':'hello'}";
var D = '{"a":1,"b":"hello"}';
var E = '{ "a" : 1 , "b" : "hello" }';
var F = '{ "a" : 1 ,\n  "b" : "hello" }';
var G = '{ "a" : 1 , "b" : window.location.href="https://www.baidu.com" }';

JSON.parse执行:

例:JSON.parse(A);

A、B、C、G都不可转,D、E、F都可以。

eval执行:

例:eval("("+A+")");

A到G都可以转,特别到G时,页面还跳转到百度了。

不建议使用eval

虽然从演示例子看,eval的能力是强过于JSON.parse的,它可解析不规范的JSON字符串,但是G的例子也可以看出,eval是不安全的,特别是数据是第三方给予时候,你根本不知道eval之后它会干什么。

所以结论就是,乖乖用JSON.parse解析JSON对象。

eval是强烈不建议用来解析JSON字符串,但是凡事无绝对,如果数据来源于你信任的并且格式也不大规范,那用它也不是不可以。

标签:arr,eval,引号,parse,JSON,数组,var,去掉,hello
来源: https://blog.csdn.net/u012174809/article/details/122043779

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有