Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
399 views
in Technique[技术] by (71.8m points)

js里不用eval如何把字符串转成数组?有什么更好的方法吗?

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

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)

有没有什么更好的方案?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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

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给你


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...