Jolt Kullanma
Performans: 1 sn (En iyisi)Giriş Değeri
Kopyala
{
"uId": null,
"data": [
{
"id": 2,
"version": 22,
"code": "2121001",
"currency": {
"code": "TL"
},
"detail": "XXX",
"group": {
"id": 321,
"name": "YYY",
"otherName": "YYY"
},
"code": null,
"type": {
"id": 3,
"name": "ZZZ",
"otherName": "ZZZ"
},
"name": "YYY / AAA: xxx",
"prodUnit": {
"id": 5,
"otherName": "BBB"
},
"category": "CCC",
"codeName": "2121001 YYY",
"Unit": "BBB"
}
],
"total": 13540
}
JOLT Spesifikasyonu
Kopyala
[
{
"operation": "shift",
"spec": {
"data": {
"*": {
"id": "data[#2].mat_id",
"code": "data[#2].mat_code",
"currency": {
"code": "data[#3].mat_currency"
},
"detail": "data[#2].detail",
"group": {
"id": "data[#3].matGroup_id",
"name": "data[#3].matGroup_name"
},
"code": "data[#2].mat_code",
"type": {
"id": "data[#3].matType_id",
"name": "data[#3].matType_name"
},
"prodUnit": {
"otherName": "data[#3].prodUnit_otherName"
},
"category": "data[#2].mat_category",
"codeName": "data[#2].mat_codeName",
"unit": "data[#2].mat_unit",
"contactInfo": {
"email": "data[#3].source"
}
}
}
}
},
{
"operation": "default",
"spec": {
"data[]": {
"*": {
"mat_id": null,
"mat_code": null,
"mat_currency": null,
"detail": null,
"matGroup_id": null,
"matGroup_name": null,
"matNsnCode": null,
"matType_id": null,
"matType_name": null,
"prodUnit_otherName": null,
"mat_category": null,
"mat_codeName": null,
"matUnit": null,
"source": "SEM"
}
}
}
}
]
Çıkış Değeri
Kopyala
{
"data": [
{
"mat_id": 3,
"mat_code": "2121001",
"mat_currency": "TL",
"detail": "XXX",
"matGroup_id": 321,
"matGroup_name": "YYY",
"matNsnCode": null,
"matType_id": 2,
"matType_name": "ZZZ",
"prodUnit_otherName": "BBB",
"matCategory": "CCC",
"mat_codeName": "YYY / AAA: xx",
"matUnit": "BBB",
"source": "SEM"
}
]
}
Groovy JsonSlurper Kullanarak
Performans: 10snKopyala
import tr.com.soagen.apinizer.util.*;
import groovy.json.JsonSlurper;
String templateJson = "{"+
"\"mat_id\":\"#mat_id\", "+
...
"}";
def jsonSlurper = new JsonSlurper()
def parsedJson = jsonSlurper.parseText(responseBodyTextFromTargetAPI);
parsedJson.data.each { object ->
String valueJson = templateJson;
valueJson = valueJson.replace("#mat_id" , ""+object.id );
...
JsonTemplate String Kullanarak Veri İçinden For ile Tüm JSON Üzerinden JsonPath ile Çekerek
Performans: 20snKopyala
import tr.com.soagen.apinizer.util.*;
int itemCount = 0;
try{
itemCount= UtilJsonOperations.extractFromJsonBody(null, responseBodyTextFromTargetAPI, '$'+".data.length()").toInteger();
}catch(Exception e){
...
}
String templateJson = "{"+
"\"mat_id\":\"#mat_id\", "+
...
"}";
for(int i=0; i < itemCount; i++){
String valueJson = templateJson;
String jsonPath ='$'+".data["+i+"].id";
String value = UtilJsonOperations.extractFromJsonBody(null, responseBodyTextFromTargetAPI, jsonPath)
valueJson = valueJson.replace("#mat_id" , value );
...
JsonTemplate String Kullanarak Veri İçinden For ile Partial JSON Üzerinden JsonPath ile Çekerek
Performans: 40 sn (En kötüsü)Kopyala
import tr.com.soagen.apinizer.util.*;
int itemCount = 0;
try{
itemCount= UtilJsonOperations.extractFromJsonBody(null, responseBodyTextFromTargetAPI, '$'+".data.length()").toInteger();
}catch(Exception e){
...
}
String templateJson = "{"+
"\"mat_id\":\"#mat_id\", "+
...
"}";
for(int i=0; i < itemCount; i++){
String valueJson = templateJson;
String partialValue = UtilJsonOperations.extractFromJsonBody(null, responseBodyTextFromTargetAPI, '$'+".data["+i+"]")
String jsonPath ='$'+".id";
String value = UtilJsonOperations.extractFromJsonBody(null, partialValue, jsonPath)
valueJson = valueJson.replace("#mat_id" , value );
...

