javascript - js里不用eval如何把字符串转成数组?有什么更好的方法吗?
高洛峰
高洛峰 2017-04-11 12:34:41
[JavaScript讨论组]

需要把一个字符串转成数组,字符串通过后端生成的格式。

var data = "[{id:'1',txt:'1',others:['1','2','3']},{id:'1',txt:'1',others:['1','2','3']}]"
//为了方便阅读:
//var data = '[
//    {
//        id:'1',
//        txt:'1',
//        others:['1','2','3']
//    },
//    {
//        id:'1',
//        txt:'1',
//        others:['1','2','3']
//    }
//]'
//目前我的方法是:
var newData = eval("("+data+")")
console.log(newData.id)

有没有什么更好的方案?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
大家讲道理

JSON.parse() 解析
JSON.stringify() 方法将JavaScript值转换为JSON字符串

迷茫

如果你要兼容低版本的浏览器可以这样写

var newData =(new Function("return "+data))();

如果不需要考虑,同上可以使用

JSON.parse(data);

让后端成[{"id":"1","txt":"1","others":["1","2","3"]},{"id":"1","txt":"1","others":["1","2","3"]}]这种正确的json string给你

巴扎黑

我看了一下,你说给编辑用的,我强烈不建议用JSON这种对操作要求高的语言。
何况JSON必须用双引号

对于给编辑用的 我们一般用 XML 这种错误最低的语言

这是经验之谈,多年的经验。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号