mule l'obtention de données de charge utile json
Ma charge utile est
<json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>`
qui imprime ( c'est le tableau json entrée de donnée)
[{"Name":"Mon nom","Adresse":"add1","Localisation":"NY"}]
Maintenant, j'ai besoin de récupérer les données de la charge utile:
<logger message="#[payload.Name]" level="INFO" doc:name="Logger"/>
il imprime la valeur null. Comment puis-je obtenir les données de la charge à l'aide de MEL? Est-il un moyen plus simple d'arriver dans Groovy ou xpath?
MODIFIER
Passé simple des données json:
{"Name":"My name","Address":"add1","Location":"NY"}
logger:
<logger message="#[payload.Name]" level="INFO" doc:name="Logger"/>
il imprime la valeur null.
OriginalL'auteur TechFind | 2014-12-04
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR: les versions Récentes de Mule ont JSON Chemin de soutien à MEL, de sorte qu'un simple expression comme
#[json:Name]
fonctionne maintenant.De la MEL page conseils
Donc pour votre cas:
J'ai ajouté
[0]
parce que ce que vous avez montré ici:n'est pas un objet JSON, mais un tableau JSON contenant un seul objet JSON.
Je l'ai fait comme <json:json-objet-transformateur returnClass="java.util.Liste" />, et utilisé #[message.charge utile[0].Nom]. ce qui a fonctionné pour moi.
Étrange,
returnClass="java.lang.Object"
devrait être en mesure de traiter avec les deux tableaux JSON (retourjava.util.List
) et des objets JSON (retourjava.util.Map
). Peut-être une régression?qu'est-ce que ce returnClass? détient dans la session? le retour de l'Objet à la place de la Liste/Carte et se charge utile[0] à partir de l'objet?
returnClass
dit le JSON deserializer de la classe de l'objet qu'il doit créer. Lors de l'utilisation dejava.lang.Object
la deserializer choisit le type le plus approprié (List
pour le tableau,Map
pour l'objet). Cette flexibilité est très pratique lorsque vous ne savez pas d'avance quel type JSON, vous aurez à traiter avec. Dans votre cas, si vous êtes sûr que vous obtiendrez toujours un tableau JSON, vous pouvez utiliserjava.util.List
.OriginalL'auteur David Dossot
Mule ESB 3.7.0
Ce travail:
OriginalL'auteur Daniel De León