js不带引号的对象格式字符串怎么转为对象

问题

JSON.parse可以将一个字符串转为支持的类型,但前提是 需要符合JSON规范,假如想要将不带引号(也就是不符合JSON规范)的、长得像对象的字符串,转为对象,应该怎么做呢?

JSON.parse('{"a": 1}'); // 得到{a: 1}
JSON.parse('{a: 1}');   // Uncaught SyntaxError: Unexpected token a in JSON at position 1
eval('{a: 1}');         // 得到1

预期

SmartParse('{a: 1}');   // 得到 {a: 1} 或者 {"a": 1}
阅读 2.9k
1 个回答
eval('(' + '{a: 1}' + ')');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题