239 votes

Y a-t-il un langage de requête pour JSON ?

Est-il (à peu près) ou XQuery SQL comme langage d'interrogation JSON?

Je pense à de très petits jeux de données qui correspondent parfaitement aux JSON où il serait agréable de facilement répondre à des requêtes telles que "quelles sont toutes les valeurs de X où Y > 3" ou de faire la SOMME d'habitude / type du nombre d'opérations.

Entièrement exemple, quelque chose comme ceci:

[{"x": 2, "y", 0}}, {"x": 3, "y", 1}, {"x": 4, "y": 1}]

SUM(X) WHERE Y > 0     (would equate to 7)
LIST(X) WHERE Y > 0    (would equate to [3,4])

Je pense que cela ne peut fonctionner à la fois côté client et côté serveur avec les résultats étant converti à la langue appropriée structure de données spécifique (ou peut-être conservé sous forme de JSON)

Une rapide recherche sur Google suggère que les gens ont pensé et mis en œuvre un certain nombre de choses (JAQL), mais il ne semble pas comme une utilisation standard ou un ensemble de bibliothèques a encore émergé. Alors que chaque fonction est assez trivial à mettre en œuvre sur son propre, si quelqu'un l'a déjà fait je ne veux pas ré-inventer la roue.

Toutes les suggestions?

Edit: Merci pour les suggestions des gens. Je l'apprécie. Cela peut en effet être une mauvaise idée ou JSON peut être trop générique d'un format pour ce que je suis en train de penser.. La raison pour vouloir un langage de requête au lieu de simplement faire la synthèse/etc fonctionne directement comme nécessaire, c'est que j'ai l'espoir de construire les requêtes de façon dynamique en fonction de l'entrée utilisateur. Un peu comme l'argument que "nous n'avons pas besoin de SQL, il nous suffit d'écrire les fonctions dont nous avons besoin". Finalement que soit le sort de la main ou vous finissez par écrire votre propre version de SQL que vous le pousser plus loin. (Ok, je sais que c'est un peu un argument stupide, mais vous obtenez l'idée..)

99voto

StaxMan Points 34626

Bien sûr, qu’en est-il :

Ils semblent tous être un peu de travail en cours, mais le travail dans une certaine mesure. Ils sont également similaires à XQuery et XPath sur le plan conceptuel ; même si XML et JSON ont différents modèles conceptuels (vs hiérarchique objet/struct).

50voto

Hugoware Points 13645

je recommanderais mon projet, que je travaille sur jLinq appelé. Je cherche des commentaires donc je serais intéressé d’entendre ce que vous pensez.

Si permet de vous écrire des requêtes similaires à comment vous le feriez dans LINQ...

Il est entièrement extensible aussi !

La documentation est en cours d’exécution, mais vous pouvez toujours l’essayer en ligne.

49voto

user430799 Points 161

La liste s’allonge :

9voto

Roger Points 785

La fonction intégrée `` méthode rend la plupart de ces bibliothèques de requête javascript soi-disant obsolètes

Vous pouvez mettre autant de conditions à l’intérieur le délégué que vous pouvez imaginer : simple comparaison, startsWith, etc.. Je n’ai pas testé, mais vous pouvez probablement imbriquer des filtres trop pour interroger des collections internes.

7voto

James Newton-King Points 13880

Si vous utilisez .NET puis Json.NET prend en charge les requêtes LINQ sur le dessus de JSON. Ce post a quelques exemples. Il prend en charge le filtrage, cartographie, regroupement, etc..

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X