Créer des chaînes JSON à partir de Groovy variables dans Jenkins Pipeline
J'ai créer ce fichier JSON en Groovy.
J'ai essayer beaucoup de choses ( JsonOutput.toJson()
/JsonSlurper.parseText()
), sans succès.
{
"attachments":[
{
"fallback":"New open task [Urgent]: <http://url_to_task|Test out Slack message attachments>",
"pretext":"New open task [Urgent]: <http://url_to_task|Test out Slack message attachments>",
"color":"#D00000",
"fields":[
{
"title":"Notes",
"value":"This is much easier than I thought it would be.",
"short":false
}
]
}
]
}
C'est pour l'affichage d'un build Jenkins message de Mou.
à titre de question à vous poser à propos de l'analyse, et dans la question elle-même vous demander à propos de la création du fichier json. pourriez-vous préciser ce que vous voulez/essayer de le faire.
je voudrais créer ces objet JSON dans un groovy variable.
je voudrais créer ces objet JSON dans un groovy variable.
OriginalL'auteur Mr_DeLeTeD | 2017-06-22
Vous devez vous connecter pour publier un commentaire.
JSON est un format qui utilise de l'homme-texte lisible pour transmettre des données à des objets composés de paires attribut–valeur et le tableau des types de données.
Ainsi, en général, json est un texte mis en forme.
En groovy objet json est juste une séquence de cartes/tableaux.
parsing json à l'aide de JsonSlurperClassic
parsing json à l'aide de pipeline
bâtiment json à partir du code et écrire dans un fichier
stackoverflow.com/questions/38276341/...
Cela ne fonctionne pas pour moi dans la dernière version de jenkins (2.138.3). Je reçois un problème sur le writeJSON étape:
WriteJSONStep(file: String, json: JSON{}, pretty?: int): java.lang.UnsupportedOperationException: must specify $class with an implementation of interface net.sf.json.JSON
Plus de contexte ici: stackoverflow.com/questions/53337109/...dans ce cas, n'utilisez pas
writeFile
, mais les trois dernières commandes dans le code:JsonOutput.toJson
,JsonOutput.prettyPrint
,writeFile
.Je l'ai résolu en fin de compte, mais merci pour vos commentaires. J'ai besoin d'ajouter
as String
à mon propriétés de la carte. Voir stackoverflow.com/questions/53337109/... pour plus d'. Je ne comprenez pas pourquoi, donc j'ai aussi demandé à stackoverflow.com/questions/53340121/...OriginalL'auteur daggett
Trouve cette question alors que j'essayais de faire quelque chose (je croit) devrait être simple à faire, mais n'a pas été abordée par l'autre réponse. Si vous avez déjà le JSON chargé comme une chaîne de caractères à l'intérieur d'une variable, comment voulez-vous convertir un objet natif? Évidemment, vous pourriez faire
new JsonSlurperClassic().parseText(json)
que les autres de répondre à l'indique, mais il est de façon native dans Jenkins pour ce faire:Espère que cela aide quelqu'un.
Edit: Comme expliqué dans les commentaires "natif" n'est pas tout à fait exact.
si nous avons une chaîne de caractères " [ {"version":"1.0.0"} , {"version":"2.0.0"}], " comment lire le tableau ?
Vous aurez besoin de Pipeline Utilitaire plugin comme indiqué ici
OriginalL'auteur mrfred
Ce sera le retour de la valeur de la "version" de la jsonFile fichier:
OriginalL'auteur Nikola Reljin