import groovy.json.JsonSlurper; import groovy.json.JsonBuilder; import com.oracle.e1.common.OrchestrationAttributes; import java.text.SimpleDateFormat; HashMap < String, Object > main(OrchestrationAttributes orchAttr, HashMap inputMap) { HashMap < String, Object > returnMap = new HashMap < String, Object > (); returnMap.put("JSONComplete", "false"); def jsonIn = new JsonSlurper().parseText(inputMap.get("One Line Data")); def jsonData = jsonIn.fs_DATABROWSE_V0101B.data.gridData.rowset; if (jsonData.size() == 0) { returnMap.put("JSONComplete", "empty"); return returnMap; } def fileName = orchAttr.getTempFileName("oneLine.json"); returnMap.put("JSONOutFileName", fileName); // json Builder def jsonBuilder = new JsonBuilder() // create output file fileXmlOut = new File(fileName); def count = 0; // build the XML def an8Map = new ArrayList(); def addressEntries = new ArrayList(); for (int i = 0; i < jsonData.size(); i++) { def addressNumber = jsonData[i].F0101_AN8; if (an8Map.contains(addressNumber)) { continue; } an8Map.add(addressNumber); count++; def addressEntry = new HashMap(); def address = new HashMap(); def phone = new HashMap(); address.put("addressLine1", jsonData[i].F0116_ADD1); address.put("city", jsonData[i].F0116_CTY1); address.put("state", jsonData[i].F0116_ADDS); address.put("zipCode", jsonData[i].F0116_ADDZ); address.put("country", jsonData[i].F0116_CTR); phone.put("prefix", jsonData[i].F0115_AR1); phone.put("number", jsonData[i].F0115_PH1); addressEntry.put("addressNumber", addressNumber); addressEntry.put("alphaName", jsonData[i].F0101_ALPH); addressEntry.put("searchType", jsonData[i].F0101_AT1); addressEntry.put("address", address); addressEntry.put("phone", phone); addressEntries.add(addressEntry); } jsonBuilder(addressEntries: addressEntries); def output = jsonBuilder.toPrettyString(); //writing json to file fileXmlOut.withWriter('UTF-8') { writer -> writer.write(output) } orchAttr.writeDebug(output); returnMap.put("json", output); returnMap.put("JSONComplete", "true"); returnMap.put("JSONcount", Integer.toString(count)); return returnMap; }