请问字符串转JSON为什么没人这样写?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

请问字符串转JSON为什么没人这样写?

2016-03-05 11:19:17 1680 1
function StrToJSON(str){
    if(Lib._.isString(str)){
        return (new Function('return '+str))();
    }else{
        return false;
    }
}

最近发现这样子也可以把字符串转成json,ie6也没问题,效率也很高

可为啥没人这样写?是有什么坑的吗?

取消 提交回答
全部回答(1)
  • 爵霸
    2019-07-17 18:53:05

    有差别, 主要体现在:
    JSON的格式定义是一个纯“数据”的存储格式,不支持javascript所有的语言格式,包括:函数、表达式等。
    因此JSON字符串转换到 Javascript Object 之后的对象,是不能包含函数之类的特性。

    所以,采用 new Function(...)这种转化格式,或者更直接一点:eval("var data ="+str); 的话,转换是没问题的, 不过会出现如果原来的字符串有人估计埋入的函数的话, 就会被执行了。 进一步造成安全问题(如xss)。

    综上所述:如果题主的数据源的安全性是可控的话, 问题不大。 如果是用户输入的内容, 这里就要小心了。

    0 0
相关问答

1

回答

如何测试字符串是否为JSON??mysql

2020-05-17 09:14:23 253浏览量 回答数 1

1

回答

如何测试字符串是否为JSON??mysql

2020-05-17 09:37:21 383浏览量 回答数 1

0

回答

Spring MVC中,如何定义一个REST API返回Order订单的JSON数据的呀?

2021-11-09 20:44:50 218浏览量 回答数 0

1

回答

Spring MVC中,应该怎么定义一个REST API返回Order订单的JSON数据?

2021-11-02 20:55:41 357浏览量 回答数 1

1

回答

Jersey 返回json数据中日期格式 400 请求报错 

2020-05-30 21:08:37 386浏览量 回答数 1

1

回答

前台怎么返回json数据

2018-05-10 19:59:54 1235浏览量 回答数 1

1

回答

json数据怎么转成对象

2018-05-10 20:00:08 1372浏览量 回答数 1

1

回答

json格式数据怎么解析

2018-05-10 19:58:37 1236浏览量 回答数 1

1

回答

JSON数据传输后台拿不到,求大神指点

2016-07-06 19:37:38 1818浏览量 回答数 1

1

回答

json从后台读取数据大小写的问题

2016-07-05 09:05:12 1916浏览量 回答数 1
+关注
2
文章
9426
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载