有如下json字符串:
const str = `{
input: {
label: "输入框input",
name: "input",
option: {
rules: [{ required: true, message: "Please select your country!" }]
},
on: {
change: e => {
const { value } = e.target;
console.log("change", value);
}
}
},
number: {
label: "数字输入框",
name: "input",
type: "number",
props: {
min: 3,
max: 500
},
option: {
rules: [{ required: true, message: "Please select your country!" }]
},
on: {
change: value => {
console.log("change", value);
}
}
}
}`;
怎样获取其中对象input或者number为字符串的内容,要得到的结果如下
获取input的结果:
{
label: "输入框input",
name: "input",
option: {
rules: [{ required: true, message: "Please select your country!" }]
},
on: {
change: e => {
const { value } = e.target;
console.log("change", value);
}
}
}
获取number的结果:
{
label: "数字输入框",
name: "input",
type: "number",
props: {
min: 3,
max: 500
},
option: {
rules: [{ required: true, message: "Please select your country!" }]
},
on: {
change: value => {
console.log("change", value);
}
}
}
原来使用 const json = JSON.parse(str); 转成json;再通过 json.input 获取需要的对象内容;然后通过JSON.stringify(json.input);转回需要的字符串;但这种方法会导致里面的 change为方法的内容获取不到。
你这不是 JSON,你这就是段 JS 脚本。
相当于把字符串当作 JS 脚本执行一遍然后赋值给
obj
;如果这段脚本来源不是你确定可信的最好不要再代码里这么写,不安全。