Я пытаюсь понять, можно ли найти отдельные ключи
из строки JSON
в Javascript и вернуть его Value
с Regex
. Вроде как создание поискового инструмента JSON
.
Представьте себе следующий JSON
"{
"Name": "Humpty",
"Age": "18",
"Siblings" : ["Dracula", "Snow White", "Merlin"],
"Posts": [
{
"Title": "How I fell",
"Comments": [
{
"User":"Fairy God Mother",
"Comment": "Ha, can't say I didn't see it coming"
}
]
}
]
}"
. Я хочу иметь возможность выполнять поиск по строке JSON
и извлекать только отдельные свойства.
предположим, что это уже функция
, это будет выглядеть примерно так.
function getPropFromJSON(prop, JSONString){
// Obviously this regex will only match Keys that have
// String Values.
var exp = new RegExp("\""+prop+"\"\:[^\,\}]*");
return JSONString.match(exp)[0].replace("\""+prop+"\":","");
}
Он вернет подстроку значения
для ключа
.
например.
getPropFromJSON("Comments")
> "[
{
"User":"Fairy God Mother",
"Comment": "Ha, can't say I didn't see it coming"
}
]"
Если вам интересно, почему я хочу сделать это вместо использования JSON.parse ()
, я создаю хранилище документов JSON вокруг localStorage
. localStorage
поддерживает только пары ключ / значение, поэтому я сохраняю строку JSON
всего Документа
в уникальном Ключе
. Я хочу иметь возможность выполнять запрос к документам, в идеале без накладных расходов на JSON.parsing ()
всей коллекции
из Documents
, а затем повторно Ключи
/ вложенные Ключи
для поиска совпадения.
Я не лучший специалист в регулярном выражении
, поэтому я не знаю, как это сделать, и возможно ли это даже с одним регулярным выражением
. Это всего лишь эксперимент, чтобы выяснить, возможно ли это. Любые другие идеи в качестве решения будут оценены.