解析被引号包裹的对象

作者: Byron 最后更新: 2023-07-08

利用Function构造函数或JSON5解析被引号包裹的对象


目录

情景

在某些情况下,我得到了一个被引号包裹的对象(非JSON),如下:

const str = '{name: "zhangsan", age: 18}'

我想要得到一个对象,如下:

const obj = {
  name: 'zhangsan',
  age: 18
}

解决方案

利用Function构造函数

利用Function构造函数,如下:

function looseJsonParse(obj) {
  return window.Function(`"use strict";return (${obj});`)()
}

const str = '{name: "zhangsan", age: 18}'
const obj = looseJsonParse(str)

JSON5

利用 JSON5,如下:

import JSON5 from 'json5'

const str = '{name: "zhangsan", age: 18}'
const obj = JSON5.parse(str)