Преобразовать массив в JSON объекты в шаблоне скорости

Привет, я пытаюсь получить массив объектов с парами вопросов и ответов, как показано в ожидаемом результате. Здесь нечетные позиции будут вопросы, а четные позиции будут ответы.

у меня есть код ниже

      public static void main(String args[]) throws Exception {
    VelocityEngine engine = new VelocityEngine();
    engine.init();

    Template template = engine.getTemplate("userinfo.vm");

    VelocityContext vc = new VelocityContext();

    String[] myArray = {"Question1","Answer1","Question2","Answer2"};
    vc.put("arr", myArray);
    StringWriter writer = new StringWriter();
    template.merge(vc, writer);

    System.out.println(writer);
}

в.vm

    #set($myArr = $arr)
[
#foreach($x in $myArr)
    #VelToJSON($x)
    #if($foreachCount != $myArr.size()) , #end
#end
]


##TODO: Make it not treat numbers as strings
#macro(VelToJSON $item)
    #if($item.keySet())
        #VelListToJSON($item)
    #elseif($item.size())
        #VelArrayToJSON($item)
    #elseif($item == true || $item ==false)
        $item
    #else
        "$item"
    #end
#end

Фактический вывод

["Question1" ,"Answer1", "Question2", "Answer2" ]

Исключенный вывод - я хочу, как показано ниже, вывод JSON из файла.vm

  [{"Question1":"Answer1"},{"Question2":"Answer2"}]

0 ответов

Другие вопросы по тегам