Не удается сопоставить атрибуты JSONRequest в файле ftl

#java #freemarker

Вопрос:

Я хочу отобразить ниже поля json-файла рынок и субрынок в файле FTL, но когда я пытаюсь выполнить код ниже, он не отображается, может ли кто-нибудь помочь мне, пожалуйста?.Я не могу нанести его на карту с 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"
              ]
            }
          }
        }
      }
    }
  }
}
 

.сверхсветовая скорость

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

Комментарии:

1. Вы не сказали, что вы подразумеваете под «не отображением» или чего вы хотите достичь.

Ответ №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}",
 

Комментарии:

1. <#если pojo.hbomaxCart??> «данные»: { <#если pojo.hbomaxCart.losgs.losg_hbomax_1.рынок??> «рынок»: «${pojo.hbomaxCart.losgs.losg_hbomax_1.рынок}», </#если> }, </#если></#если>

2. Привет @Rohit я использовал приведенный выше код, но он все еще не отображается

3. losg_hbomax_1 на самом деле является ключевым противником карты, которую мы не можем жестко закодировать как pojo.hbomaxCart.losgs.losg_hbomax_1

4. @Krish Если ключ динамический, то это похоже pojo.hbomaxCart.losgs[variableThatStoresTheActualKey].market .