你可以学一下 form-create的方案, * 官网地址:[https://www.form-create.com/v3/guide/](https://link.segmentfault.com/?enc=BG1Hs36%2BDZ6MrBZyuf74FA%3D%3D.rw5MhouviojTcY1JhHjM5epuHWyfZDJA93f3wnmyoOQBRKISYWPkQ5gl0d0ePPb8) * github: [https://github.com/xaboy/form-create/blob/2d20aa64f8d953db75ebadabb2099e683e42b98d/packages/utils/lib/json.js#L67](https://link.segmentfault.com/?enc=LoIlUeEGw55PI7D9RNcOhQ%3D%3D.4ujBTvd4MiHIbbDnOzbnWVGivGHqejF0rvQE%2F%2FHQY4FhqbXaoaTvdWY7rVUN%2BR45%2Fqc27X4ANgIIF6mhnY7HxVsOa3lLvikks2kF9RgSG%2BpFqWpDVStXXN1NadyALtyizXQ%2FacCk398WHYUxDRD3EoQm00sVAVt2k5kM%2FarcgCg%3D) 具体使用是这种效果  import deepExtend from './deepextend'; import {err} from './console'; import is, {hasProperty} from './type'; const PREFIX = '[[FORM-CREATE-PREFIX-'; const SUFFIX = '-FORM-CREATE-SUFFIX]]'; const $T = '$FN:'; const $TX = '$FNX:'; const FUNCTION = 'function'; export function toJson(obj, space) { return JSON.stringify(deepExtend([], obj, true), function (key, val) { if (val && val._isVue === true) return undefined; if (typeof val !== FUNCTION) { return val; } if (val.__json) { return val.__json; } if (val.__origin) val = val.__origin; if (val.__emit) return undefined; return PREFIX + val + SUFFIX; }, space); } function makeFn(fn) { return (new Function('return ' + fn))(); } export function parseFn(fn, mode) { if (fn && is.String(fn) && fn.length > 4) { let v = fn.trim(); let flag = false; try { if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) { v = v.replace(SUFFIX, '').replace(PREFIX, ''); flag = true; } else if (v.indexOf($T) === 0) { v = v.replace($T, ''); flag = true; } else if (v.indexOf($TX) === 0) { v = makeFn('function($inject){' + v.replace($TX, '') + '}'); v.__json = fn; v.__inject = true; return v; } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) { flag = true; } if (!flag) return fn; const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v); val.__json = fn; return val; } catch (e) { err(`解析失败:${v}\n\nerr: ${e}`); return undefined; } } return fn; } export function parseJson(json, mode) { return JSON.parse(json, function (k, v) { if (is.Undef(v) || !v.indexOf) return v; return parseFn(v, mode); }); }