logo

在开发的时候经常遇到字符串转 json 的需求。

JSON.Parse()

在这次使用JSON.Parse()的时候报错,Unexpected token {in JSON at position 217362,经过查资料发现,类似的报错还挺多的,比如Unexpected token < in JSON at position 0,比如Unexpected token ' in JSON at position 1

eval()

eval()函数可以执行任何的 JavaScript 代码,所以其实蛮危险的,容易被插入恶意脚本

1
2
const jsonStr = '{name:"orange",age:18}'
console.log(eval("(" + jsonStr + ")"))

使用函数

其原理就是通过拼接字符串,然后在 Function 创建一个匿名方法然后调用

1
2
const jsonStr = '{name:"orange",age:18}'
console.log(new Function("return " + jsonStr))