You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
640 B
31 lines
640 B
/**
|
|
* 判断字符串是否为有效的JSON格式
|
|
* @param str 要检测的字符串
|
|
* @returns boolean
|
|
*/
|
|
export function isValidJSON(str: string): boolean {
|
|
if (typeof str !== 'string' || str.trim() === '') {
|
|
return false;
|
|
}
|
|
|
|
try {
|
|
JSON.parse(str);
|
|
return true;
|
|
} catch (error) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 安全解析JSON,失败时返回默认值
|
|
* @param str JSON字符串
|
|
* @param defaultValue 默认值
|
|
* @returns 解析结果或默认值
|
|
*/
|
|
export function safeJSONParse<T>(str: string, defaultValue: T): T {
|
|
try {
|
|
return JSON.parse(str);
|
|
} catch (error) {
|
|
return defaultValue;
|
|
}
|
|
}
|