![](/img/trans.png)
[英]How do I use a template code generator (eg freemarker) in Maven?
[英]How do I create a Freemarker template with n depth?
我正在嘗試使用Apache Freemarker以n層深的json-esque格式顯示一些數據。 有了這個未知數,我試圖輸出類似於以下內容:
{
"name": "Human",
"type": "object",
"fields": [
{
"name": "weight"
"type": "int"
},
{
"name": "Origin"
"type": "object"
"fields": [
{
"name": "fatherOrigin"
"type": "object"
"fields": [
...
]
},
{
"name": "motherOrigin"
"type": "object"
"fields": [
...
]
}]
}]
}
我想使用一個偽代碼看起來像這樣的while循環。
while(1){
if (currType is object) {
print what you know and walk deeper
}else{
print your output and break
}
但是,freemarker不支持while循環。 我的替代方法是創建一個列表,該列表的大小大於任何合理的深度(30)
這是該問題的可接受設計嗎? 有沒有更好的方法來解決呢?
謝謝!
確實沒有while
循環。 我能想到的最干凈的方法是<#list 0.. as _>...</#list>
,但要注意, 0..
僅在具有足夠高的incompatible_improvements
配置設置值的情況下才能正常工作(作為無窮級數)。 _
只是一個普通變量,但表示我不在乎名稱。
但是,通常,最好使用遞歸來處理嵌套結構。 宏和函數支持這一點。 然后, #list
-s(如果您根本需要它們)通常會通過數據模型的實際列表,而不是您作為變通方法構造的范圍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.