无法在 ftl 文件中映射 jsonRequest 属性

Posted

技术标签:

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

我想在 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>  

【问题讨论】:

你没有说“不是映射”是什么意思,或者你想达到什么目的。 【参考方案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

以上是关于无法在 ftl 文件中映射 jsonRequest 属性的主要内容,如果未能解决你的问题,请参考以下文章

解决Volley中的JsonObjectRequest jsonRequest参数无法被服务端读取的问题

无法从自定义结果类型的值堆栈中获取 ftl 中的值

Flash Translation Layer 如何存储映射数据、不可用块和超级块?

struts 集成freemarker 无法定义局部变量

JsonRequest<String> 是个好主意吗?

持久化类的应用:把持久化类映射到表