Используя JSON Builder, как вставить карту в каждый объект Object Array - PullRequest
1 голос
/ 19 июля 2011

Дано: myList = [request:request,actions:actions], где запрос - это объект, а действия - карта.Попытка получить что-то вроде этого:

{data:[
   {a:'a',b:'b',actions:[c:'c',d:'d']},..
  ]}

, где a и b - свойства запроса, а c и d - действия - записи карты.используя:

render(contentType:"text/json"){
    data = array {
       myList.each { obj->
          rqst = {
             obj.request
             actions = {actions: obj.actions}
          }
       }
    }
}

очевидно, синтаксис здесь неправильный ... но, возможно, близкий?

1 Ответ

0 голосов
/ 17 августа 2011

Я думаю, что следующее выполняет то, что вы искали. PropsHolder - это простой внутренний класс с двумя (a, b) свойствами

def request = new PropsHolder()
request.a = "a"
request.b = "b"
def actions = [c: "c", d: "d"]

def myList = [request: request, actions: actions]

render(contentType:"text/json")
{
    [data: [
    a: myList.request.a,
    b: myList.request.b,
    actions: myList.actions
    ]
    ]
}

Результат json выглядит следующим образом при выводе на веб-страницу:

{"data":{"a":"a","b":"b","actions":{"c":"c","d":"d"}}}

Я не совсем уверен с коллекцией [a, b, actions], искали ли вы карту или массив. Сложно сказать по выходным, я пошел с картой.

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