gpt4 book ai didi

java - 使用 shift、默认操作的 Jolt 转换

转载 作者:行者123 更新时间:2023-12-02 00:20:45 25 4
gpt4 key购买 nike

Input
{
"name": "Karan",
"age": 25,
"contact": {
"email": "abc@gmail.com"
},
"details": [
{
"contact": {
"firstName": "karan",
"lastName": "singh"
},
"phone": "5555555555",
"email": "karan@gmail.com",
"address": {
"line1": "123",
"city": "bangalore",
"state": "karnataka",
"country": "india",
"zip": "570089"
}
}
],
"shippingTo": {
"contact": {
"name": {
"firstName": "5505",
"lastName": "5505"
},
"phone": null,
"email": null
},
"address": {
"line1": "2100 88th St",
"city": "Mumbai",
"state": "Maharashtra",
"country": "India",
"zip": "07047"
}
},
"fulfillmentLines": [
{
"chargeDetails": [
{
"chargeCategory": "PRODUCT",
"chargeName": "ItemPrice",
"chargePerUnit": {
"currencyAmount": 34.96,
"currencyUnit": "USD"
},
"isDiscount": false,
"taxDetails": {
"taxPerUnit": {
"currencyAmount": 2.4,
"currencyUnit": "USD"
},
"taxPerLine": {
"currencyAmount": 2.4,
"currencyUnit": "USD"
}
}
}
],
"lineDates": {
"minDeliveryDate": "2019-01-10T00:30:12+00:00",
"maxDeliveryDate": "2019-02-10T00:30:12+00:00",
"orderProcessingDate": "2019-03-10T00:30:12+00:00",
"preciseDeliveryDate": "2019-04-17T01:30:12+00:00"
}
}
]
}

Output:
{
"contact": {
"name": "Karan",
"age": 25,
"isTestMode": false //How to set it to true if the input Json contact.email contains "abc"
},
"contactDetails": [ //Shud pick from "details" input json
{
"personalInfo": {
"address": {
"line1": 123,
"city": "bangalore",
"state": "karnataka",
"country": "india",
"zip": "570089",
"isLoadingAvailable": false //How to Set it to default value false in each contactDetails list
},
"contact": {
"firstName": "karan",
"lastName": "singh",
"completeName": "karan singh"
},
"phone": "5555555555",
"email": "karan@gmail.com"
}
}
],
"orderLines": [
{
"shipToAddress": { // How to pick from the same "shippingTo" input json for each orderLines list
"address": {
"addressLineOne": "2100 88th St",
"city": "Mumbai",
"countryCode": "India",
"postalCode": "07047",
"stateOrProvinceCode": "Maharashtra"
},
"name": {
"firstName": "5505",
"lastName": "5505"
},
"phone": {
"completeNumber": null
},
"email": {
"emailAddress": null
}
},
"charges": [ //Shud pick from "fulfillmentLines.chargeDetails" input json
{
"chargeCategory": "PRODUCT",
"chargeName": "ItemPrice",
"chargePerUnit": {
"currencyAmount": 0,
"currencyUnit": "USD"
},
"isDiscount": false,
"tax": [ //How to convert it to array as its an object(fulfillmentLines.0.chargeDetails.0.taxDetails) in input json
{
"taxName": "Tax1", //How to Set it to default value "Tax1" in each "tax" list
"taxPerLine": {
"currencyAmount": 2.15,
"currencyUnit": "USD"
},
"taxPerUnit": {
"currencyAmount": 2.15,
"currencyUnit": "USD"
}
}
]
}
],
"orderedLineDates": [ //Shud pick from "fulfillmentLines.lineDates" input json
{
"dateTypeId": "DELIVERY",
"minExpectedDate":"2019-01-10T00:30:12+00:00",//Shud pick from minDeliveryDate
"maxExpectedDate": "2019-02-10T00:30:12+00:00",//Shud pick from maxDeliveryDate
"expectedDate": "2019-04-17T01:30:12+00:00"//Shud pick from preciseDeliveryDate
},
{
"dateTypeId": "OPD",
"requestedDate": "2019-03-10T00:30:12+00:00",//Shud pick from orderProcessingDate
"expectedDate": "2019-03-10T00:30:12+00:00"//Shud pick from orderProcessingDate
}
]
}
]
}

同样需要震动规范。还请建议任何好的教程都可以使用。需要以下信息。1.在列表中添加默认值2.根据其他字段的条件设置字段值3.String append函数可以在JOLT中使用吗?4.将对象转换为数组

能否请您推荐 JOLT 规范?

最佳答案

我正在从这个网站学习 - http://jolt-demo.appspot.com - 很少有非常有用的例子。
第二个来源是页面 https://github.com/bazaarvoice/jolt/issues 上的文档和查看问题
下面是规范,检查它是否是你所指的,下面是一些评论 - 我希望你能理解其余的:

[
{
"operation": "shift",
"spec": {
"name": "contact.name",
"age": "contact.age",
"contact": {
"email": {
"abc": { // here you check if it is "abc" value
"#true": "contact.isTestMode" // # it makes that after it you puts default value
},
"*": { // and here you check any other values
"#false": "contact.isTestMode"
}
}
},
"details": {
"*": {
"address": {
"@": "contactDetails[&2].personalInfo.&",
"#false": "contactDetails[&2].personalInfo.address.isLoadingAvailable"
},
"contact": "contactDetails[&1].personalInfo.&",
"phone": "contactDetails[&1].personalInfo.phone",
"email": "contactDetails[&1].personalInfo.email"
}
},
"shippingTo": {
"address": {
"line1": "orderLines[#].shipToAddress.address.addressLineOne", // [#] it allows to put values to the same object
"city": "orderLines[#].shipToAddress.address.city",
"country": "orderLines[#].shipToAddress.address.countryCode",
"zip": "orderLines[#].shipToAddress.address.postalCode",
"state": "orderLines[#].shipToAddress.address.stateOrProvinceCode"
},
"contact": {
"name": "orderLines[#].shipToAddress.&",
"phone": "orderLines[#].shipToAddress.phone.completeNumber",
"email": "orderLines[#].shipToAddress.email.emailAddress"
}
},
"fulfillmentLines": {
"*": {
"chargeDetails": {
"*": {
"chargeCategory": "orderLines[#].charges[#].chargeCategory",
"chargeName": "orderLines[#].charges[#].chargeName",
"chargePerUnit": "orderLines[#].charges[#].&",
"isDiscount": "orderLines[#].charges[#].isDiscount",
"#Tax1": "orderLines[#].charges[#].tax[#].taxName",
"taxDetails": {
"*": "orderLines[#].charges[#].tax[#].&"
}
}
},
"lineDates": {
"#DELIVERY": "orderLines[#].orderedLineDates[0].dateTypeId",
"minDeliveryDate": "orderLines[#].orderedLineDates[0].minExpectedDate",
"maxDeliveryDate": "orderLines[#].orderedLineDates[0].maxExpectedDate",
"preciseDeliveryDate": "orderLines[#].orderedLineDates[0].expectedDate",
"#OPD": "orderLines[#].orderedLineDates[1].dateTypeId",
"orderProcessingDate": ["orderLines[#].orderedLineDates[1].requestedDate", "orderLines[#].orderedLineDates[1].expectedDate"]
}
}
}
}
},
{
"operation": "modify-default-beta",
"spec": {
"contactDetails": {
"*": {
"personalInfo": {
"contact": {
"completeName": "=concat(@(1,firstName),' ',@(1,lastName))"
}
}
}
}
}
}
]

关于java - 使用 shift、默认操作的 Jolt 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55459640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com