FreeMarker模板错误:JSONArray被封装到f.e.b.StringModel中



我试图将JSON对象发送到我的免费标记,但在测试JUnit 时出错

这是我的目标

{
"filename": "test",
"orderId": "123435",
"orderDate": "23.09.2020г.",
"itemsCount": "4",
"items": [
{
"itemName": "ТВ Приставка 400",
"itemCount": "2 шт Х 400₽",
"itemSum": "800.00"
}
],
"totalSumm": "3000.00"
}

这是我的错误:

FreeMarker template error:
The value you try to list is an extended_hash+string (org.camunda.bpm.engine.impl.util.json.JSONArray wrapped into f.e.b.StringModel), thus you must specify two loop variables after the "as"; one for the key, and another for the value, like <#... as k, v>).

我该如何解决?

items是JSON对象的数组

FreeMarker对org.camunda.bpm.engine.impl.util.json.JSONArray一无所知,因此它不将其视为类似列表的东西(如FTL中所称的序列(。所以你可以做其中一个:

  • 使用objectWrapperConfiguration设置,可以教FreeMarker如何将JSONArray视为列表。(您可以在其他地方找到更多关于自定义ObjectWrapper-s的信息。(然后,您可以只#list这样的对象,并使用适用于序列的所有其他操作。

  • 或者,您可以从模板中调用JSONArray的Java API-s。这当然不太方便,但不需要事先投资。

最新更新