Мне нужно создать ручной JSON, чтобы отправить его в качестве ввода в REST API.В прошлом в 12c (v12.0.1.2) я использовал API APEX_JSON и после некоторых исследований обнаружил, что Oracle 18c имеет
Типы объектов в JSON
Iне могу использовать функции SQL / PL_SQL, так как мне нужно создать ручной JSON.Так может кто-нибудь подсказать, где APEX_JSON лучше или новый API с JSON_OBJECT_T
, JSON_ARRAY_T
, etc
лучше с точки зрения производительности и анализа?
Вот мой пример JSON, который мне нужно создать.В этом JSON только массив routeStops
может быть доступен из базы данных и будет иметь несколько остановок в зависимости от количества записей, но кроме того, что другие значения единичны во всем json и должны быть жестко закодированными значениями?Итак, теперь, пожалуйста, предложите, можно ли добиться этого с помощью функций SQL?
"routeProfile": {
"resourceProfileRef": "7T5FRANBSC",
"driverRef": "",
"vehicleRef": "",
"dutyStartTime": "10:30",
"dutyDurationHours": 0,
"startLocation": {
"knownLocationRef": "",
"houseName": "",
"address1": "",
"address2": "",
"address3": "",
"address4": "",
"postCode": "",
"countryCode": "",
"location": {
"coordinates": [-999,
-999],
"type": "Point"
}
},
"mandatoryFirstStop": false,
"mandatoryFirstStopLocation": {
"knownLocationRef": "",
"houseName": "",
"address1": "",
"address2": "",
"address3": "",
"address4": "",
"postCode": "",
"countryCode": "",
"location": {
"coordinates": [-999,
-999],
"type": "Point"
}
},
"mandatoryFirstStopTime": 0,
"mandatoryLastStop": false,
"mandatoryLastStopLocation": {
"knownLocationRef": "",
"houseName": "",
"address1": "",
"address2": "",
"address3": "",
"address4": "",
"postCode": "",
"countryCode": "",
"location": {
"coordinates": [-999,
-999],
"type": "Point"
}
},
"mandatoryLastStopTime": 0,
"endLocation": {
"knownLocationRef": "",
"houseName": "",
"address1": "",
"address2": "",
"address3": "",
"address4": "",
"postCode": "",
"countryCode": "",
"countryCode": "",
"location": {
"coordinates": [-999,
-999],
"type": "Point"
}
}
},
"routeStops": [{
"stop": 1,
"location": {
"knownLocationRef": "",
"houseNumber": "",
"houseName": "Shop XYZ",
"address1": "Ruddington Lane",
"address2": "Wilford",
"address3": "Nottingham",
"address4": "",
"postCode": "NG11 7DQ",
"countryCode": "GB",
"location": {
"coordinates": [-999,
-999],
"type": "Point"
}
},
"jobs": [{
"jobRef": "3735081",
"jobTypeRef": "STDSTOPJOB",
"customer": {
"title": "",
"initials": "",
"firstName": "",
"lastName": "",
"homePhone": "",
"workPhone": "",
"mobilePhone": "",
"email": ""
},
"location": {
"knownLocationRef": "",
"houseNumber": "",
"houseName": "Shop XYZ",
"address1": "Ruddington Lane",
"address2": "Wilford",
"address3": "Nottingham",
"address4": "",
"postCode": "NG11 7DQ",
"countryCode": "GB",
"location": {
"coordinates": [-999,
-999],
"type": "Point"
}
},
"customerAccountRef": "CUSTACC001",
"jobScheduling": {
"schedulingDateTimeEarliest": "2018-12-21 00:00",
"schedulingDateTimeLatest": "2018-12-21 23:59",
"excludeDateTimeEarliest": "2018-12-21 12:00",
"excludeDateTimeLatest": "2018-12-21 13:00"
}
}]
}]