-
Comparer 2 JSON
Bonjour,
J'aimerai tester l'égalité de deux json.
L'ordre des attributs du json n'étant pas garanti, j'aimerai aller plus loin faire qu'un simple test l'égalité d'une chaine de texte.
La structure du json à tester n'est pas figée, et elle peut éventuellement contenir des tableaux.
Auriez-vous une idée ?
Merci :)
Jako59
-
Bonjour bonjour,
Peut-être que certains ne seront pas d'accord avec ce que je vais dire mais de mon point de vue, votre demande relate plus de code à faire que de BDD.
Ce que je veux dire par là, c'est qu'à mes yeux, un script perl (par exemple) serait plus enclin à faire votre demande que du SQL par exemple. Une BDD traite des données, ce n'est pas à elle de vous faire le café. (Si besoin, en perl, je peux vous donner le code pour lire un JSON)
A voir ce que les autres vous diront
Bisous bisous
-
Je vais préciser ma demande.
Les recherches effectuées sur l'application web sont stockées en base, sous la forme d'un json.
L'idée est que dans ma procédure stockée de recherche, je sache si la recherche demandée à déjà était effectuée, ou non.
Je partais sur une comparaison les json, mais il est vrai que le contenu lui même du json ne m'intéresse pas.
Il y a peut-être moyen comparer des hash des json, ou quelque chose comme cela.
-
Ce sera très lent....
Le mieux est de convertir votre JSON en table via OPENJSON puis de faire des recherches dedans.
Pour information, il aurait mieux valu stocker vos données en XML qui est indexable, alors que je JSON ne l'est pas en l'état actuel de la recherche !
A +
-
Merci,
Tout n'est pas verrouillé, je peux encore changer le stockage des critères la recherche en xml.
je tester comme cela
-
Ce serait nettement préférable !
Il a fallut à peu près 15 ans pour trouver des méthodes d'indexation pour le XML.... Celle présentées par SQL Server sont extraordinairement puissantes compte tenu de leur simplicité d'utilisation. Pour information aucune base de données "libre" ne sait aujourd'hui indexer du XML.... Alors pour le JSON, il est vraisemblable que nous n'auront pas cela avant 10 ans....
Pour information sur la complexité de l'indexation du XML, je vous laisse comparer la doc Oracle sur le sujet et celle de SQL Server
https://docs.oracle.com/cd/B28359_01...g.htm#CHDJECDA
https://docs.microsoft.com/fr-fr/sql...l-server-ver15
Pour info papier de MS Research sur le sujet :
https://dl.acm.org/doi/pdf/10.5555/1316689.1316787
A +
-
Hello,
Merci pour les références.
Ces données non structurées, anti-relationnelles, constituent un vrai challenge pour les SGBDR modernes.
Il me semble que PostgreSQL est capable d'indexer une expression XPATH.
Sur le JSON, ils font plutôt du bon boulot aussi: https://www.postgresql.org/docs/curr...type-json.html
Have fun
-
Indexer un brin de XML, cela n'a aucun intérêt surtout si votre brin de XML n'est pas toujours à la même place ou s'il n'est pas toujours présent. Et indexer un brin de XML, tout le monde sait le faire (SQL Server avec les colonnes calculées indexées)... mais indexer la totalité d'une collection de documents XML c'est tout à fait autre chose !
Pour le JSON, PG n'a rien fait qu'encapsuler des routines déjà existante dans la plupart des bibliothèques de langage ! Stocker de façon intelligente (compression par exemple), et indexer c'est déjà beaucoup plus complexe...
A +