Je récupère l'objet JSON à partir d'une URL à l'aide de Je suis intéressé par la chaîne Je voudrais analyser la chaîne en 3 ensembles de données: P> Cependant, je ne sais pas comment faire cela.
Y a-t-il des bibliothèques Jenkins Groovy que je peux utiliser pour le faire dans un pipeline déclaratif? P> EDIT FORT>
Basé sur la réponse ci-dessous, je peux voir que je peux faire une carte de la manière suivante: p> dans l'exemple que j'ai: p> Comment puis-je obtenir:
Application = [Application: 01.01.01] P> httpRequest code> dans un script groovy.
Customfield code> String . Le format de la chaîne est: p>
3 Réponses :
Il n'y a pas de bibliothèques que je connaisse que cela aura une fonctionnalité pour analyser les données, mais que vous connaissez le format des données, il est facile de les analyser manuellement em>. Il y a 3 groupes dans l'entrée ( Pour traiter les applications Vous devez diviser le groupe 0 avec obtenir la liste des suites est facile, il suffit de diviser le groupe 1 avec Enfin, les produits sont analogiques à la liste des applications, mais ce groupe de temps 2 doit être utilisé: p> applications code>,
suites code>,
produits code>) séparés par un
code> caractère. Pour obtenir les groupes dont vous avez besoin: p>
, code> caractère (juste au cas où il y a de nombreuses applications ). Vous avez une liste de paires au format:
nom! Version code>. Chaque paire doit être divisée avec
! Code>, vous obtenez donc une liste de listes de format:
[[nom, version]] code>. De la dernière structure, il est facile de créer une carte. Toutes les étapes: p>
, code> caractère: p>
Merci. Les suites sont correctement analysées. Mais les applications et les produits sont générés comme [d: e] code> et
[t: e] code>.
@Ssf, c'est correct. Ils sont retournés comme des cartes, comme vous avez demandé votre question.
Désolé mon commentaire était faux. Ils sont retournés en tant que carte, mais seuls les premier et second caractères: je veux [Application: 01.01.01], [Produit: 01.01.01, produit2: 01.01.02]. Mais j'ai eu [A: P] et [p: r]
@Ssf ici Vous avez un gist: gist.github.com/opalo/45b6ae9DB723ad65c128E7B9B67C78EB - Comparez-le avec votre code.
Non malheureusement.
@Ssf, vous n'avez pas copié mon code littéralement - veuillez consulter ma réponse une fois de nouveau et utiliser la solution fournie correctement. Je viens de vérifier cela et ça marche correctement.
Je ne sais pas comment vous obtenez l'élément 0 et l'élément 1 de la liste. Utilisation de .CollectTries {[(IT [0]): IT [1]] CODE> me donne le caractère 0 et le caractère 1 des listes. Par conséquent, je me retrouve avec [A: P] et [P: R]. Comme s'opposer à [Application: 01.01.01] Pour l'application et [Produit: 01.01.01] Pour les produits.
Vous pouvez simplifier votre problème en utilisant l'étape de l'utilitaire de pipeline: Readjson
Merci. Cela ne me donne pas ce que j'étais après.
J'ai trouvé une méthode. Groovy peut convertir les valeurs d'un tableau d'objet et les convertir en carte avec le Tosproadmap () code>. Cependant, la matrice doit avoir un nombre pair d'éléments.
def appList = ['DevOpsApplication', '01.01.01']
def appMap = appList.toSpreadMap()