0
votes

Convertir la carte en json String par JSON Schema

Y a-t-il un moyen de convertir la carte de JSON String par JSON Schema? Je dois faire cela par Json Schema parce que je ne sais pas si l'objet de la carte est une chaîne ou un numéro. Par exemple, j'ai la CSV qui ressemble à ceci: xxx

J'ai besoin de le convertir en json string "{" nom ":" 1 ", 'année': 1}" et je peux savoir si 1 est une chaîne (dans un cas de nom) ou numéro (dans un cas de l'année) uniquement par le schéma JSON.


4 commentaires

Pouvez-vous poster vos tentatives ici. Je veux dire ce qui est l'entrée et la sortie attendue?


@Ssudhirojha j'ai édité la question


Donc, votre entrée n'est pas un mappe mais csv fichier. Donc, vous devez lire csv et après cela les convertit sur JSON . Si le fichier contient de nombreuses lignes, vous devez générer json tableau : [{...}, {...}, ..] . Ou c'est toujours une ligne csv fichier?


Dans ce cas, j'ai besoin de générer une matrice JSON


5 Réponses :


0
votes

Vous pouvez utiliser une bibliothèque org.json: xxx

sortie: xxx


5 commentaires

yep, mais ma carte est: map.put ("nom", "1"); map.put ("année", "1"); Les deux valeurs sont des chaînes et dans le schéma JSON est la configuration de ce nom de la chaîne et l'année est numéro.


Vous allez le lire toujours comme une chaîne. Ensuite, vous pouvez le vérifier par stringutils.isnumérique (année) et le jeter en entiers s'il est numérique.


Ici: Stackoverflow.com/Questtions/1102891/...


Ce n'est pas une solution pour la propriété de nom, il devrait rester à la chaîne


Je le lis avec com.fasterxml.jackson.dataformat.csv.csvmapper



0
votes

Vous pouvez utiliser GSON pour cela. Il est très facile d'utiliser un peu puissant. Pour l'instant, j'ai pu résoudre tous les problèmes de ce problème. ( https://github.com/google/gson ) xxx < / p>


4 commentaires

yep, mais ma carte est: map.put ("nom", "1"); map.put ("année", "1"); Les deux valeurs sont des chaînes et dans le schéma JSON est la configuration de ce nom de la chaîne et l'année est numéro.


C'est pourquoi la carte est


Vous pouvez convertir votre carte en ma carte


Oui, je peux, mais comment puis-je savoir si la valeur pour l'année est une chaîne ou un entier? Quand je l'ai lu de CSV



2
votes

jackson a un Module pour analyser les documents CSV . En supposant que vous ayez déjà des dépendances de Jackson dans votre projet, vous devez ajouter ce qui suit selon: xxx

puis créer une classe pour définir votre schéma et tenir les valeurs (faites attention à la @jsonpropertyorder < / a> Annotation, comme il définit l'ordre des colonnes CSV): xxx

analyser le document CSV dans une liste et écrivez enfin la liste sur une chaîne JSON: xxx


2 commentaires

Je pense que c'est la meilleure solution!


Je n'ai pas de classe de pojo, je n'ai que JSON Schema



-1
votes

Après avoir lu vos commentaires, je suggère que c'est ce dont vous avez besoin. Ceci est une solution Java simple. Je suppose qu'il y a des bibliothèques qui peuvent vous aider à analyser le CSV. J'espère que j'ai pu vous aider

donné CSV: xxx

code Java: xxx

la sortie être: xxx


1 commentaires

Je ne connais pas les éléments du CSV ou de leur ordre, c'est défini dans le schéma JSON