Parser des données JSON, CSV ou HTML
FreeDatas2HTML vous permet de parser des données listées dans une page internet ou encore accessibles via une ressource externe (fichier, API…). Les formats de données possibles sont le JSON, le CSV ou encore le HTML, pour peu que les données soient listées dans la page de manière rigoureuse.
Testez ici avec votre propre fichier CSV.
Le parseur retourne de manière distincte une liste des champs trouvés, une liste des « enregistrements », ainsi que les éventuelles anomalies rencontrées durant le traitement. Vous pouvez utiliser votre propre parseur, par exemple pour gérer d’autres formats de données (XML…).
Une fois les données parsées, tous les traitements suivant se font côté client, sans nouvel appel nécessaire à l’éventuelle source de données externe.
Afficher les données dans la page web
Vous pouvez ensuite afficher les données dans votre page web, par défaut sous forme de tableau. Il est possible de paramétrer d’autres formats, par exemple une liste HTML ou encore d’utiliser son propre moteur de rendu, tout en bénéficiant du reste du code de FreeDatas2HTML.
Tous les champs trouvés par le parseur ne doivent pas forcément être affichés dans la page. La liste de ceux à afficher sera alors fournie en option. Qu’ils soient affichés ou pas, tous les champs restent disponibles pour les filtres.
Enfin, en option, un compteur d’enregistrements peut être affiché.
Classer les données
Certains champs peuvent être proposés aux utilisateurs finaux pour leur permettre de classer les données affichées.
Par défaut, ce classement se fait de manière alphabétique et « naturelle », c’est-à-dire qu’en ordre ascendant « 20 » sera devant « 100 », malgré le fait que « 1 » se trouve devant « 2 »…
Mais il est possible de fournir ses propres fonctions de classement pour certains champs, pour peu qu’elles soient compatibles avec la fonction sort() de JavaScript.
Filtrer les données
Il peut également être proposé à l’utilisateur de filtrer les données, via des listes <SELECT> reprenant les valeurs distinctes d’un champ, classées de la même manière que vu précédemment.
Si plusieurs filtres sont ainsi proposés, leurs actions s’additionnent, c’est-à-dire que seuls les enregistrements validant tous les filtres sélectionnés seront fournis en résultat.
Moteur de recherche
Un moteur de recherche peut aussi être proposé à l’utilisateur.
Il agit comme les filtres précédents, si ce n’est que la saisie y est libre et que la recherche des caractères saisis peut se faire sur plusieurs champs.
Il est possible de définir les champs sur lesquels effectuer la recherche ou les garder tous (par défaut).
Elle peut (ou non) être sensible à la casse, aux accents et caractères spéciaux, suivant votre configuration.
La recherche peut être lancée dès la saisie d’un certain nombre de caractères, ou attendre un clic sur le bouton d’envoi.
Pagination
Une valeur de pagination peut être définie et/ou plusieurs options de pagination proposées aux utilisateurs finaux.
Les pages proposées à la navigation s’adaptent évidemment au nombre de résultats.
Adaptable à vos besoins
Toutes les fonctionnalités de FreeDatas2HTML sont proposées en option.
Vous pouvez très bien n’utiliser FreeDatas2HTML que pour parser les données et en faire ensuite ce que bon vous semble…
Vous pouvez écrire vos propres scripts pour remplacer n’importe quelle classe du projet, pour peu qu’ils respectent son interface. Cela peut être assez simple, en vous inspirant de l’existant.
FreeDatas2HTML est partagé sous licence AGPL, ce qui vous donne le droit de modifier et partager son code, mais en gardant les mêmes droits (copyleft).
Code et dépendances
FreeDatas2HTML est écrit en TypeScript, les tests étant réalisés via Karma et Jasmine, dans un environnement NPM/Webpack. Deux modules externes sont utilisés : Papa Parse pour parser les données CSV et natural-orderby pour optimiser le classement par défaut des données. Ces deux modules sont partagés sous licence MIT.