estoy tratando de ver si es posible las operaciones de búsqueda individuales keys
de una cadena JSON
en Javascript y volver es Value
con Regex
. Algo así como construir una herramienta de búsqueda JSON
.expresiones regulares para analizar individuales fundamentales: los valores de JSON en Javascript
Imagine la siguiente 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"
}
]
}
]
}"
Quiero ser capaz de buscar a través de la cadena JSON
y sólo tire de propiedades individuales.
supongamos que es un function
ya, se vería algo así como.
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+"\":","");
}
volvería la subcadena de la Value
para la Key
.
p. Ej.
getPropFromJSON("Comments")
> "[
{
"User":"Fairy God Mother",
"Comment": "Ha, can't say I didn't see it coming"
}
]"
Si su preguntando por qué quiero hacer esto en lugar de utilizar JSON.parse()
, estoy construyendo un almacén de documentos JSON alrededor localStorage
. localStorage
solo admite pares clave/valor, por lo que estoy almacenando una cadena JSON
de Document
en un único Key
. Quiero poder ejecutar una consulta en los documentos, idealmente sin la sobrecarga de JSON.parsing()
Collection
de Documents
y luego recurrir sobre el Keys
/Keys
anidado para encontrar una coincidencia.
No soy el mejor en regex
así que no sé cómo hacer esto, o si es posible con regex
solo. Este es solo un experimento para descubrir si es posible. Cualquier otra idea como una solución sería apreciada.
Esto se JSON, ¿por qué no acaba de abordar como JSON? – fge
@fge si lees su publicación, verás por qué. Aunque no es realmente una razón válida para usar regex. Recuerde que la expresión regular es un lenguaje REGULAR ... y no debería usarse para este – AlanFoster
. Dudo que valga la pena implementar su propio análisis sintáctico para esto.Puede funcionar mejor si solo necesita un único valor de un documento enorme, pero si realiza varias búsquedas, mantener el json en la memoria debe ser más rápido. – Kapep