/**
 * 判断字符串是否为有效的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;
  }
}