Regexp для поиска значений внутри JSON
Форум — Development
Пытаюсь получить все значения лежащие в authorName из json со структурой вида:
"books": [{
"year":1990,
"authorName":"Ivanov",
"country":"Russia",
"qantity":12,
"style":"Detective"
},
{
"year":2000,
"authorName":"Petrov",
"country":"Russia",
"qantity":12,
"style":"Horror"
},
{
"year":2000,
"authorName":"Petrov",
"country":"Russia",
"qantity":12,
"style":"Detective"
}
]
Обязательные условия: 1) authorName лежит внутри books. 2) style= Detective.
Кол-во объектов в books может быть любым. Возможно ли достать значения из authorName посредством обычной регулярки? Пока мне это не удалось и на больших объемах у меня catastrophic backtracking, как я понял, нужно использовать атомарную группировку, пока что удалось достичь:
"authorName":"((?>[^"])*+)".+?
- вот так выдираются все authorName, но не только из books и нет проверки на style.
"books":\[\{{1,1}.*?"authorName":"((?>[^"])*+)".+?
- так ищется только первое вхождение
Подскажите пожалуйста, в какую сторону двигаться.