前端vue.js对字符串进行json校验
onMounted(() => {
try {
// 尝试解析并格式化 JSON
console.log(JSON.stringify(JSON.parse("3323232323"), null, 2));
console.log("okay...");
} catch (e) {
console.log("无效的 JSON 数据...");
}
})
大家猜测一下这个输出结果是啥?
是Okay...
也就是输入的内容校验是过的
JSON.parse("3323232323")
实际上是可以成功解析的,因为 "3323232323"
是一个有效的 JSON 字符串,表示一个数字。JSON 不仅支持对象和数组,还支持简单的数据类型,如字符串、数字、布尔值和 null
。
为什么 JSON.parse("3323232323")
能成功解析?
• "3323232323"
是一个合法的 JSON 数字。 • JSON 支持的数字格式包括整数、浮点数、科学计数法等。 • 因此,JSON.parse("3323232323")
会返回数字 3323232323
,而不是抛出错误。
代码的输出
console.log(JSON.stringify(JSON.parse("3323232323"), null, 2));
这行代码会输出:
3323232323
因为 JSON.parse("3323232323")
返回的是数字 3323232323
,而 JSON.stringify
将其转换回字符串形式。
如果你想检查一个字符串是否是 JSON 对象(例如 {}
或 []
),而不是简单的数据类型(如数字、字符串、布尔值等),你需要明确检查解析后的数据类型。例如:
onMounted(() => {
try {
const parsed = JSON.parse("3323232323");
if (typeof parsed === "object" && parsed !== null) {
console.log(JSON.stringify(parsed, null, 2));
console.log("okay...");
} else {
console.log("这不是一个 JSON 对象...");
}
} catch (e) {
console.log("无效的 JSON 数据...");
}
});
• typeof parsed === "object" && parsed !== null
:确保解析后的结果是一个对象({}
或 []
),而不是简单的数据类型。 • 如果解析后的结果不是对象,则输出提示信息。