【问题标题】:Not able to map jsonRequest attributes in ftl file无法在 ftl 文件中映射 jsonRequest 属性
【发布时间】:2021-10-15 11:06:17
【问题描述】:

我想在 FTL 文件中的 json 文件市场和 subMarket 字段下方进行映射,但是当我尝试下面的代码时,它没有映射,有人可以帮我吗?我 2 天后无法映射它

JsonRequest

{
  "ProcessOrderRequest": {
    "prevalidationMode": false,
    "hbomaxCart": {
      "lobType": "HBOMAX",
      "losgs": {
        "losg_hbomax_1": {
          "productCategory": "HBOMAX",
          "market":"ABC",
          "subMarket":"something"
          "lineItems": {
            "LINE_ITEM_00": {
              "productType": "PRODUCT",
              "billingCode": "BASE-DUMMY-201912",
              "quantity": 1
            },
            "LINE_ITEM_01": {
              "productType": "PRODUCT",
              "billingCode": "BOLT-UNLHBOMAX-201912",
              "quantity": 1,
              "promotionReferences": [
                "PROMO_ID_1"
              ]
            }
          }
        }
      }
    }
  }
}

.ftl

<#if pojo.hbomaxCart??>
    "data": 
         {
         <#list pojo.hbomaxCart.losgs as key, value> 
           "market" = ${value.market} 
         </#list>
         },  
    </#if>  

【问题讨论】:

  • 你没有说“不是映射”是什么意思,或者你想达到什么目的。

标签: java freemarker


【解决方案1】:

您需要正确地使用其整个路径访问该变量。

<#if pojo.hbomaxCart.losgs.losg_hbomax_1.market??>
   "market": "${pojo.hbomaxCart.losgs.losg_hbomax_1.market}",
</#if>

或者,您可以将内容分配到变量中以便于访问。

<#assign varname = pojo.hbomaxCart.losgs.losg_hbomax_1>
"market": "${varname.market}",

【讨论】:

  • "data": { "market": "${pojo.hbomaxCart.losgs. losg_hbomax_1.market}", #if> }, #if>
  • 嗨@Rohit,我用上面的代码仍然没有映射
  • losg_hbomax_1 实际上是地图的关键敌人,我们不能将其硬编码为 pojo.hbomaxCart.losgs.losg_hbomax_1
  • @Krish 如果密钥是动态的,那么它就像pojo.hbomaxCart.losgs[variableThatStoresTheActualKey].market
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-31
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多