Использование построителя Groovy JSON

Я видел несколько действительно классных примеров построителя Groovy и Grails JSON. Вот один: http://www.objectpartners.com/2012/03/22/grails-protip-dynamically-creating-json-in-grails-2-0-with-jsonbuilder/

Прямо сейчас я использую контроллер для создания тестового списка с помощью команды collect, а затем визуализирую список в объект JSON. Кто-нибудь знает, как взять приведенный выше пример и поместить его в контроллер?

Вот как выглядит мой контроллер:

class TreeMapController {

def list(){

    def results = myDomain.list()

    def test = [:] //Test List

    test=[] 

    def i = 0 //index key for parent

    //Generate list for fancyTree
    for (record in results){
        test.add([key:i++,folder:true, title: record.name, guid: record.id,
                children:record.subResults.collect{[title:it.name]}

        ])
    }

    //render response types
    withFormat {
        html test
        json {render test as JSON}
        xml {render test as XML}
    }
}

}

Чтобы вызвать это с помощью json-запроса, я предоставляю ссылку: localhost / project / list.json, если бы я должен был вызвать приведенный выше пример (ссылка на использование построителя JSON), как бы я позвонил или сделал запрос.


person codeBarer    schedule 17.12.2013    source источник
comment
Не уверены, что я понял вопрос в последнем абзаце?   -  person tim_yates    schedule 17.12.2013
comment
Я пытался сказать, что с указанным выше контроллером, который я создал, для доступа к файлу JSON я использую ссылку localhost / project / list.json. Однако, если бы я использовал конструктор JSON, как бы я предоставил ссылку на файл json.   -  person codeBarer    schedule 17.12.2013
comment
Вы имеете в виду, как json {render builder.toString()}?   -  person tim_yates    schedule 17.12.2013
comment
да, я попробую. Извините, я новичок в Grail's, и меня бросили в него без подготовки.   -  person codeBarer    schedule 17.12.2013
comment
Не беспокойтесь :-) Надеюсь, мы сможем помочь :-)   -  person tim_yates    schedule 17.12.2013


Ответы (1)


Вам определенно стоит взглянуть на документацию Grails, чтобы понять основные концепции.

Здесь у вас есть контроллер, который будет отвечать на ${baseUrl}/treeMap/list url, то есть http://localhost:8080/treeMap/list по умолчанию

Я думаю, вам нужно будет запросить URL-адрес с заголовком Content-type: text/json;, чтобы он работал

person Grooveek    schedule 17.12.2013