Groovy Script pour lire une valeur particulière

Je peux récupérer la valeur d'une charge utile JSON particulière via le script ci-dessous. S'il y a plusieurs champs 'id', je veux extraire la valeur commençant par "asset:". Aidez-moi, s'il vous plaît.

Supposons que les champs suivants arrivent et que je souhaite récupérer la valeur commençant par "asset :" (ordres aléatoires)

"id":"Batch:6166a7e352faff0007dfa7dc",
"id":"assetTypeID:6166a7e352faff0007dfa7dc",
"id":"assetType:6166a7e352faff0007dfa7dc",
"id":"asset:6166a7e352faff0007dfa7dc",

Code existant : (à utiliser pour récupérer la première valeur d'identifiant)

import groovy.json.JsonSlurper;
def Message processData(Message message)
{
def body = message.getBody(String);
def map = new JsonSlurper();
def object = map.parseText(body)
def id = object.data.id[0].toString()
message.setHeader("id",id )
return message
}


Solution du problème

def data = [ "id":"Batch:6166a7e352faff0007dfa7dc", "id":"assetTypeID:6166a7e352faff0007dfa7dc", "id":"assetType:6166a7e352faff0007dfa7dc", "id":"asset:6166a7e352faff0007dfa7dc", ]
def id = data.findResult{ k, v -> v.startsWith( 'asset:' )? v: null }
assert id == 'asset:6166a7e352faff0007dfa7dc'

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"