1.Dependency
<dependency>
<groupId>com.hubspot.jinjava</groupId>
<artifactId>jinjava</artifactId>
<version>2.5.6</version>
</dependency>
2.相关代码
HashMap<String, Object> qiMenOutbound = new HashMap<>();
StockDeliveryOrder deliveryOrder = requestData.getDeliveryOrder();
List<CreateOrderLine> orderLines = requestData.getOrderLines();
qiMenOutbound.put("deliveryOrder",deliveryOrder);
qiMenOutbound.put("orderLines",orderLines);
JSONObject StockOutOrderObject = JsonConverterUtils.convert2Json("template/outbound_qimen_2B_wos4.json", qiMenOutbound);
package com.icil.qimen.service.utils;
import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Charsets;
import com.google.common.io.Resources;
import com.hubspot.jinjava.Jinjava;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
@Slf4j
public class JsonConverterUtils {
public static JSONObject convert2Json(String mappingPath, Map<String, Object> convertContext) throws IOException {
//try {
Jinjava jinjava = new Jinjava();
String template = Resources.toString(Resources.getResource(mappingPath), Charsets.UTF_8);
// String template = ApolloMessageUtil.getString(mapping);
String renderedTemplate = jinjava.render(template, convertContext);
return JSONObject.parseObject(renderedTemplate);
// } catch (Exception e) {
// log.error("get template fail, because {}",e);
// return null;
// }
}
}
3.java中J2文件写到json文件中
{
"customer": "{{orderLines[0].ownerCode}}",
"orderService":"Normal",
"orders": [
{
"orderNo": "{{deliveryOrder.deliveryOrderCode}}",
"sourceLinkId": "{{deliveryOrder.oaidOrderSourceCode}}",
{% if deliveryOrder.sourcePlatformCode == "OTHER" %}
"salesPlatform" : "OTHERS",
{% else %}
"salesPlatform" : "{{deliveryOrder.sourcePlatformCode}}",
{% endif %}
"shopName": "{{deliveryOrder.shopNick}}",
"tid": "{{orderLines[0].sourceOrderCode}}",
"oaid": "{{deliveryOrder.receiverInfo.oaid}}",
"orderAction": "N",
"subOrder": "N",
"source": "QiMen_2C",
"courierName": "{{courierName}}",
"courierService": "{{deliveryOrder.logisticsCode}}",
"courierBillNo": "{{deliveryOrder.expressCode}}",
"freightPayment": null,
"orderAllowSplit": null,
{% if deliveryOrder.totalAmount %}
"orderTotalAmt": "{{deliveryOrder.totalAmount}}",
{% endif %}
"orderCurrency": "CNY",
"courierFRT": null,
"courierAcc": null,
"orderTotalTax": null,
"shopperAccount": null,
"orderShipperName": "{{deliveryOrder.senderInfo.name}}",
"orderShipperPhone": "{{deliveryOrder.senderInfo.mobile}}",
"orderShipperAddr1": "{{deliveryOrder.senderInfo.area + deliveryOrder.senderInfo.town + deliveryOrder.senderInfo.detailAddress}}",
"orderShipperAddr2": null,
"orderShipperPostalCode": "{{deliveryOrder.senderInfo.zipCode}}",
"orderShipperCity": "{{deliveryOrder.senderInfo.city}}",
"orderShipperState": "{{deliveryOrder.senderInfo.province}}",
"orderShipperCountry": "{{deliveryOrder.senderInfo.countryCode}}",
"orderConsigneeName": "{{deliveryOrder.receiverInfo.name}}",
"orderConsigneeCompany": "{{deliveryOrder.receiverInfo.company}}",
"orderConsigneePhone": "{{deliveryOrder.receiverInfo.mobile|truncate(30, true,'')}}",
"orderConsigneeCountry": "{{deliveryOrder.receiverInfo.countryCode}}",
"orderConsigneeEmail": "{{deliveryOrder.receiverInfo.email}}",
"orderConsigneeState": "{{deliveryOrder.receiverInfo.province}}",
"orderConsigneeCity": "{{deliveryOrder.receiverInfo.city}}",
"area": "{{deliveryOrder.receiverInfo.area}}",
"orderConsigneeAddr1": "{{deliveryOrder.receiverInfo.town + deliveryOrder.receiverInfo.detailAddress}}",
"orderConsigneeAddr2": "{{deliveryOrder.receiverInfo.oaid}}",
"orderConsigneePostalCode": "{{deliveryOrder.receiverInfo.zipCode}}",
"remarkforDelivery": null,
"storeRemark": "{{deliveryOrder.remark}}",
"warehouseCode": "{{deliveryOrder.warehouseCode}}",
"deliveryNote": "{{deliveryOrder.orderType}}",
"mobile": "{{deliveryOrder.receiverInfo.mobile}}",
{% if deliveryOrder.latestDeliveryTime %}
"storeOutCutoffDtLoc": "{{deliveryOrder.latestDeliveryTime}}",
{% endif %}
"packageType": null,
"parts": [
{% for part in orderLines %}
{
"partNo": "{{part.itemCode}}",
"reference3": "{{part.extCode}}",
"partDescription": "{{part.itemName}}",
"countryOfOrigin": null,
"partHsc": null,
"personalPostalTaxNo":null,
"partRegistNo": null,
"partCIQRegistNo": null,
"vendorCode": null,
"vendorPoNo": null,
{% if part.inventoryType == "CC" %}
"invStatus" :"Damaged",
{% endif %}
"vendorPartNo": null,
"partSize": null,
"partStyle": null,
"partIsGift": null,
"reference1": "{{part.itemCode}}",
{% if part.actualPrice && part.retailPrice %}
"partUnitPrice": "{{part.actualPrice | default(part.retailPrice)}}",
{% endif %}
"partUnitPriceCur": "CNY",
"partQty": "{{part.planQty}}",
"partQtyUnit": null,
{% if part.total %}
"partTotalPrice":"{{part.total}}",
{% endif %}
"partTotalTax": null,
"partNetWt": null,
"partGrossWt": null,
"partChargeWt":null
}{% if loop.index != loop.length %},{% endif %}
{% endfor %}
],
"payMethod": null,
"payCompanyName": null,
"payCompanyCode":null,
"payAmount": null,
"payCurrency":null,
"paymentTranscationID": null,
"paymentTime": null
}
]
}