Я пытаюсь выяснить, можно ли найти отдельный keys
из строки 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
, это будет выглядеть примерно так:
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+"\":","");
}
Возвращается подстрока Value
для Key
.
например
getPropFromJSON("Comments")
> "[
{
"User":"Fairy God Mother",
"Comment": "Ha, can't say I didn't see it coming"
}
]"
Если вам интересно, почему я хочу сделать это вместо использования JSON.parse()
, я строю хранилище документов JSON около localStorage
.localStorage
поддерживает только пары ключ / значение, поэтому я храню строку JSON
всего Document
в уникальном Key
.Я хочу, чтобы можно было выполнить запрос к документам, в идеале без дополнительных затрат JSON.parsing()
всего Collection
из Documents
, а затем повторно использовать Keys
/ nested Keys
для поиска соответствия.
Я не лучший в regex
, поэтому я не знаю, как это сделать, или даже если это возможно только с regex
.Это всего лишь эксперимент, чтобы узнать, возможно ли это.Любые другие идеи в качестве решения будут оценены.