J'utilise un script Groovy dans Ready! Api 1.9.0 pour décoder une chaîne base64 renvoyée dans une réponse SOAP et stocker l'objet JSON résultant dans un fichier json. Ensuite, prenez ce fichier résultant et l'analyser avec JsonSlurper pour obtenir un objet Map.Comment puis-je itérer sur un objet Map retourné à partir de JsonSlurper.parse (JSONFile)?
Cet objet doit être répété pour que je puisse trouver une clé et affirmer sa valeur. Je suis incapable de comprendre pourquoi les clés ne sont pas trouvées. Si j'appelle directement une clé en utilisant map.get (key), j'obtiens une erreur "No such property". Si je l'appelle directement en utilisant map.get ('key'), il retourne null. J'ai également essayé Map.each{k -> log.info("${k}")}
qui retourne 'interface.java.util.Map' et non la liste attendue de clés.
//create file path
def respFile = "C:\\Users\\me\\Documents\\Temp\\response.json"
//set originaldata in response to var
def response1 = context.expand('${Method#Response#declare namespace ns4=\'com/service/path/v4\'; declare namespace ns1=\'com/other/service/path/v4\'; //ns1:RequestResponse[1]/ns1:GetAsset[1]/ns1:Asset[1]/ns4:DR[1]/ns4:Sources[1]/ns4:Source[1]/ns4:OriginalData[1]}')
//decode the data
byte[] decoded = response1.decodeBase64()
//create file using file path above if it doesnt exist
def rf = new File(respFile)
//write data to file NOTE will overwrite existing data
FileOutputStream f = new FileOutputStream(respFile);
f.write(decoded);
f.close();
//begin second file
import groovy.json.JsonSlurper;
def inputFile = new File("C:\\Users\\me\\Documents\\Temp\\response.json")
def parResp = new JsonSlurper().parse(inputFile)
//test to find key
Map.each{k -> log.info("${k}")}
.. // échantillon du JSON avant Parse, pas le plein JSON si:
{
"Response": {
"ecn": 1000386213,
"header": {
"msgRefNum": "bbb-ls-123"
},
"success": true,
"duplicatedit": false,
"subjectReturnCode": 1,
"subject": [
{
"uu": 11264448,
"name": {
"name3": "WINSTON BABBLE",
"dob": "19700422",
"gender": "2",
"ecCoded": "160824",
"ecCodeSegment": "ZZ"
},
"acc": [
{
"ftp": "01",
"Number": "AEBPJ3977L",
"issued": "20010101",
"mMode": "R"
} ],
"telephone": [
{
"telephoneType": "01",
"telephoneNumber": "9952277966",
"mMode": "R"
} ],
"address": [
{
"line1": "M\/O HEALTH AND FAMILY WELFARE",
"sCode": "07",
"cCode": 110009,
"ac": "04",
"reportedd": "160430",
"mMode": "R",
"mb": "lakjsdf blorb"
},
pouvez-vous partager un échantillon de JSON? – Raphael
@Raphael J'ai modifié le message original. – justAguy88