bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

Распарсить json через регулярку?

Здравствуйте. Как распарсить json через регулярку reqex. JSON.parse() не подходит. Потому что там может быть кусок json который нужно распарсить. Спасибо.

const rawRecords = `[{"1":"1","2":"}2"}, {"2":"2","3":"3"},{"4`.matchAll(/{(?<record>(".*?"):(".*?"),?)}/g);

for (const rawRecord of rawRecords) {
  console.log(rawRecord.groups.record)
}

// "1":"1","2":"
// "2":"2","3":"3"
  • Вопрос задан
  • 373 просмотра
Пригласить эксперта
Ответы на вопрос 2
@zkrvndm
Софт для автоматизации
Открой старую версию jQuery: https://code.jquery.com/jquery-1.12.4.js
И найди там функцию parseJSON -> так в седой древности парсили JSON.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Для такого кейса
[{"1":"1","2":"}2"}, {"2":"2","3":"3"},{
есть старая задачка на собеседовании где надо парсить выражение со скобочками. По сути считать открывающиеся и закрывающиеся. В данном примере она - очень подходит. Только здесь есть одна ложная закрывающая скобочка.
{"1":"1","2":"}2"}
Исправить ее можно просто игнорируя неожиданное состояние автомата парсинга. Например двойка была неожиданной. И закрывающий bracer - тоже.

Регулярки... ну такое. Для них нужна память под дерево разбора и если вы парсите терабайтный и битый JSON то много будет оверхеда.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы