Lors de la recherche d'éléments dans des tableaux et des hachages JSON complexes, comme :
[
{ "id": 1, "name": "One", "objects": [
{ "id": 1, "name": "Response 1", "objects": [
// etc.
}]
}
]
Existe-t-il une sorte de langage de requête que je peux utiliser pour trouver un élément in [0].objects where id = 3
?
0 votes
Pas à moins que vous en fassiez un. Laissez l'interrogation au serveur et utilisez REST pour obtenir uniquement les données dont vous avez besoin.
5 votes
+1 bonne idée. Je vais écrire ça demain
2 votes
Ce n'est pas XPath, mais j'ai trouvé JLinq assez bon (qui fait que le code se lit comme
in(...).where(...).select(...)
) : hugoware.net/Projets/jLinq .4 votes
C'est frustrant car il existe de nombreuses bibliothèques, mais rien qui s'approche d'une norme communément acceptée. Nous avons une bibliothèque utilisée par des tiers, nous devons donc fournir un langage de requête qui soit largement connu et utilisé.
0 votes
D'autres options sont suggérées ici : stackoverflow.com/questions/777455/
1 votes
Bien sûr, vous pouvez utiliser jsel - github.com/dragonworx/jsel - étant donné que vous avez une variable
data
qui contient votre objet JSON, vous écrirez :jsel(data).select("//*[@id=3]")
et il retournerait l'objet contenant la clé id avec 3.0 votes
Tout ici semble plutôt dépassé. La solution la plus récente et maintenue que j'ai trouvée est github.com/dfilatov/jspath .
0 votes
tools.ietf.org/html/rfc6901 offre un simple pointeur vers un emplacement spécifique. Il ne s'agit pas d'une syntaxe de requête, mais peut-être est-ce au moins le lieu d'une approche commune ?
0 votes
npmjs.com/package/jsonpath#jpqueryobj-pathexpression-count
0 votes
J'ai fait un petit script qui peut être utilisé pour quelques buts communs extraire/supprimer/définir une variable dans un objet JSON : github.com/burlachenkok/json_processing