2013-07-09 5 views
0

У меня есть следующий кодНевозможно ссылаться на локальную переменную с JsonBuilder

AddTicketCommand addTicketCommand = new AddTicketCommand(request.JSON) 
    JsonBuilder jsonBuilder = new JsonBuilder() 
    jsonBuilder { 
     ticket { 
      subject addTicketCommand.subject 
      requester { 
       name currentUser?.name 
       email currentUser?.emailAddress 
      } 
      comment { 
       body addTicketCommand.comment 
      } 
      custom_fields { 
       [ 
         { 
          id 21857727 
          value addTicketCommand.zenRequestType 
         }, 
         { 
          id 21854146 
          value addTicketCommand.zenProductId 
         } 
       ] 
      } 
     } 
    } 

Объект addTicketCommand не пустой строке 2, но не определена в закрытии JsonBuilder. Невозможно ли получить доступ к локальным переменным в groovy из-за закрытия?

ответ

1

Вы должны иметь доступ к addTicketCommand внутри крышки, как показано ниже. Отметьте использование «скобок» вместо «фигурных» фигурных скобок.

AddTicketCommand addTicketCommand = new AddTicketCommand(request.JSON) 
JsonBuilder jsonBuilder = new JsonBuilder() 
    jsonBuilder { 
     ticket { 
      subject addTicketCommand.subject 
      requester { 
       name currentUser?.name 
       email currentUser?.emailAddress 
      } 
      comment { 
       body addTicketCommand.comment 
      } 
      custom_fields ([ //Note the use of parenthesis 
       { 
        id 21857727 
        value addTicketCommand.zenRequestType 
       }, 
       { 
        id 21854146 
        value addTicketCommand.zenProductId 
       } 
      ]) ////Note the use of parenthesis 
     } 
    }