muryshev's picture
init
79278ec
export function customParse(jsonString: string): object | [] {
// Замена одинарных кавычек на двойные
let formattedString = jsonString.replace(/'/g, '"');
// Замена некорректных символов, таких как \x и \u
formattedString = formattedString.replace(/\\x[0-9A-Fa-f]{2}/g, "");
formattedString = formattedString.replace(/\\u[0-9A-Fa-f]{4}/g, "");
// Замена неэкранированных обратных слэшей
formattedString = formattedString.replace(/\\(?!["\\/bfnrtu])/g, "");
// Удаление некорректных или лишних элементов
formattedString = formattedString.replace(/\\b/g, "\\u0008");
formattedString = formattedString.replace(/\\f/g, "\\u000c");
formattedString = formattedString.replace(/\\n/g, "\\u000a");
formattedString = formattedString.replace(/\\r/g, "\\u000d");
formattedString = formattedString.replace(/\\t/g, "\\u0009");
// Попытка преобразовать строку в объект
try {
const obj = JSON.parse(formattedString);
return obj;
} catch (e) {
console.error("Ошибка при распарсивании строки:", e);
return [];
}
}
export function customParseStaff(jsonString: string): object {
let formattedString = jsonString.replace(/'/g, '"');
formattedString = formattedString.replace(/_x000B_/g, " ");
formattedString = formattedString.replace(/(\d+):/g, '"$1":');
try {
const obj = JSON.parse(formattedString);
return obj;
} catch (e) {
console.error("Ошибка при распарсивании строки:", e);
return {};
}
}