/**
 * 
 结果是：
 {
     "keshi":"呼吸科",
     "user":{
         "name":""
     }
 }
 */
export function extactAndParseJsonFromString(inputString: string) {
    let startIndex = inputString.indexOf("{")
    if (startIndex == -1) return {}

    let count = 0;
    let endIndex = startIndex;

    // 遍历字符串，计算花括号实现数量平衡
    for (let i = startIndex; i < inputString.length; i++) {
        // console.log(i,inputString[i])
        if (inputString[i] === "{") {
            count++;
        } else if (inputString[i] === "}") {
            count--;
        }
        // 当花括号平衡，我们找到了完整的JSON
        if (count === 0) {
            endIndex = i;
            break;
        }
    }
    // 若不平衡
    if (count != 0) return {};

    // 提取JSON字符串，并解析
    const jsonString = inputString.slice(startIndex, endIndex + 1);
    console.log("jsonString", jsonString)
    try {
        return JSON.parse(jsonString);
    } catch (error) {
        console.error("Failed to parse JSON", error);
        return {}
    }
}
/**
 * 从字符串中提取所有 JSON 对象并解析
 * 
 * @param inputString 输入的字符串
 * @returns 返回一个包含所有 JSON 对象的数组
 */
export function extractAllJsonFromString(inputString: string) {
    const jsonObjects: any[] = [];
    let startIndex = -1;  // 用于记录 JSON 开始的位置
    let count = 0;        // 用于记录花括号的数量（平衡）

    // 遍历整个字符串，查找并提取所有 JSON 对象
    for (let i = 0; i < inputString.length; i++) {
        const char = inputString[i];

        // 找到 JSON 对象的开始
        if (char === '{' && count === 0) {
            startIndex = i;  // 记录 JSON 开始的位置
        }

        // 计算花括号的平衡
        if (char === '{') {
            count++;
        } else if (char === '}') {
            count--;
        }

        // 如果花括号平衡，表示找到了一个完整的 JSON 对象
        if (count === 0 && startIndex !== -1) {
            const jsonString = inputString.slice(startIndex, i + 1);
            try {
                const jsonObject = JSON.parse(jsonString);
                jsonObjects.push(jsonObject);  // 将解析的 JSON 对象添加到数组中
            } catch (error) {
                console.error("Failed to parse JSON:", error);
            }
            startIndex = -1;  // 重置 startIndex，继续查找下一个 JSON 对象
        }
    }

    return jsonObjects;
}

