总部设在这把叉子 https://github.com/KumarJayanti/JsonPath from JsonPath https://github.com/json-path/JsonPath添加从 json 路径创建新 json 节点的功能,您可以执行以下操作:
// columnsMap = key: jsonPath node, value: value to be added to node
String json = "{ }";
for (Entry<String, String> entry : columnsMap.entrySet()) {
JsonPath compiledPath = JsonPath.compile(entry.getKey());
Object parsedJsonPath =
compiledPath.set(configuration.jsonProvider().parse(json), entry.getValue(), configuration);
json = JsonPath.parse(parsedJsonPath).jsonString();
}
return json;
输入(列映射):
{vendor_account_ids=1234567,4567123,789785,
charges[0].vendor_charge_id=CHARGE-01,
charges[1].vendor_charge_id=CHARGE-02,
charges[0].type=LOAN_DEDUCTION,
charges[0].conditions.alternative_delivery_date=false,
charges[0].conditions.depends_on_vendor_charge_ids[0]=ID01,
charges[0].conditions.depends_on_vendor_charge_ids[1]=ID02,
charges[0].conditions.order_total.maximum_value=123.45,
charges[0].conditions.payment_method=BANK_SLIP,
charges[0].conditions.scaled_from=ORDER_TOTAL,
charges[0].conditions.product_attributes.is_alcoholic=false,
charges[0].conditions.payment_terms[0]=1,
charges[0].conditions.payment_terms[1]=30,
charges[0].output.scope=LINE_ITEM,
charges[0].output.apply_to=DISCOUNT_AMOUNT,
charges[0].output.type=PERCENT,
charges[0].output.ratio=FIXED,
charges[0].output.ranges[0].from=1,
charges[0].output.ranges[0].value=10,
charges[0].output.vendor_item_ids[0]=SKU001,
charges[0].output.vendor_item_ids[1]=SKU002
}
输出(返回json):
{
"vendor_account_ids": "1234567,4567123,789785",
"charges": [
{
"vendor_charge_id": "CHARGE-01",
"type": "LOAN_DEDUCTION",
"conditions": {
"alternative_delivery_date": "false",
"depends_on_vendor_charge_ids": [
"ID01",
"ID02"
],
"order_total": {
"maximum_value": "123.45"
},
"payment_method": "BANK_SLIP",
"scaled_from": "ORDER_TOTAL",
"product_attributes": {
"is_alcoholic": "false"
},
"payment_terms": [
"1",
"30"
]
},
"output": {
"scope": "LINE_ITEM",
"apply_to": "DISCOUNT_AMOUNT",
"type": "PERCENT",
"ratio": "FIXED",
"ranges": [
{
"from": "1",
"value": "10"
}
],
"vendor_item_ids": [
"SKU001",
"SKU002"
]
}
},
{
"vendor_charge_id": "CHARGE-02"
}
]
}