/**
 * 判断字符串是否为有效的 JSON
 * @param {string} str - 需要判断的字符串
 * @returns {boolean} 是有效 JSON 则返回 true，否则返回 false
 */
export function isJson(str) {
  // 先排除非字符串的情况
  if (typeof str !== 'string') {
    return false;
  }
  try {
    // 尝试解析 JSON
    const obj = JSON.parse(str);
    // 解析成功后，需确认结果是对象或数组（避免纯字符串/数字被误判）
    return typeof obj === 'object' && obj !== null;
  } catch (e) {
    // 解析失败，不是有效 JSON
    return false;
  }
}
