Шаблон FreeMarker JSON - дать ему узел? NextSibling, чтобы выяснить, есть ли у текущего узла брат или сестра? - PullRequest
1 голос
/ 25 июня 2010

Я хочу преобразовать XML-файл в JSON.Проблема в том, что у меня есть структура

<node id="1">
    <title>Content ...</title>
</node>

<node id="2">
    <title>Secon ...</title>
    <subnodes>

        <node id="3">
        <title>Secon ...</title>
        <subnodes>

            <node id="4">
                <title>Secon ...</title>
            </node>

        </subnodes>

    </node>

    </subnodes>
</node>

Я хочу использовать формат JSON, например:

{
  "nodeid" : "34",
  "text" : "First level",
  "children" : [{
   "nodeid" : "1",
   "text" : "Content ...",
   "leaf" : true
        ,"children" : [{
   "nodeid" : "2",
   "text" : "Second",
   "leaf" : true
        ,"children" : [{
           "nodeid" : "3",
           "text" : "Third",
           "leaf" : true
    }**,**]

Но всегда есть запятая "" после последних детей.С freemarker есть способ выяснить, есть ли у узла родитель, потомки или что-то еще, например, узел «родитель», «узел» потомки.Но нет никаких шансов узнать, есть ли у него родной брат.

Как freemarker узнает, есть ли у текущего узла родной брат?

1 Ответ

1 голос
/ 10 марта 2011

В цикле списка доступны две специальные переменные цикла:

item_index : Это числовое значение, которое содержит индекс текущего элемента, который переходит в цикле.

item_has_next : логическое значение, которое указывает, является ли текущий элемент последним в последовательности или нет.

Пример:

<#assign seq = ["winter", "spring", "summer", "autumn"]>
<#list seq as x>
  ${x_index + 1}. ${x}<#if x_has_next>,</#if>
</#list>

http://freemarker.sourceforge.net/docs/ref_directive_list.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...