Как получить объект из списка объектов во Freemarker - PullRequest
1 голос
/ 03 апреля 2019

Я пытаюсь получить один объект, возвращенный из списка объектов;

list = [{"name":"Joe","id":1},{"name":"Fred","id":2}]

Я хочу вывести объект в точности как в формате ниже;

{"name":"Joe","id":1}

Выдает ошибки, когда я хочу получить доступ к объекту полностью;

${list?first} -> Error: Expected a string or something automatically...

Тестирование это на https://try.freemarker.apache.org/, но я не могу извлечь полный первый объект, в то время как доступ к свойству этого объекта работает нормально ..?

Я понимаю, что это несколько странный вариант использования для отображения объекта подобным образом. Мне это нужно для бизнес-программы, которая использует freemarker, и я хочу присвоить объект обратно в переменную, которая принимает этот формат.

1 Ответ

1 голос
/ 03 апреля 2019

Вы можете отобразить значения, которые можно преобразовать в строку, так как ошибка (ниже) предлагает

<#assign item = list[0]>
${item.name} ${item.id} 
For "${...}" content: Expected a string or something automatically convertible to 
string (number, date or boolean), or "template output" , but this has evaluated to a 
sequence (ArrayList wrapped into f.t.DefaultListAdapter):
==> list  [in nameless template at line 1, column 3]

Вы можете проверить freemarker, анализировать JSON ответы, для выполнения аналогично:

<#assign array = '[{"name":"Joe","id":1},{"name":"Fred","id":2}]'> 
<#assign object = array?eval[0]> 
<#list object?keys as key>"${key}":"${object[key]}"
</#list>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...