2015-04-07 3 views
0

Как включить ошибки. AllErrors в обработанном JSON?Grails allErrors в JSON

Я хотел бы мой JSON выглядеть примерно так:

{id:10 
name:"" 
    _errors: [{name:"Name cannot be blank"}], 
    children: [{field:"value", _errors:[]}, ...] 
} 

и т.д.

Так что при использовании что-то вроде угловому у нас есть ошибки в том же «класс» в качестве полей. Возврат ошибок на другой карте не работает, когда у вас есть сложное дерево.

ответ

0

Это когда вы отказываетесь, что найти ответ.

Как всегда Grails она была покрыта плагин Marshallers (https://grails.org/plugin/marshallers)

Добавление в плагин затем добавить следующее в домен класса

static marshalling={ 
    json{ 
     angular{  
      virtual { 
       _errors {value, json ->      
        json.value (com.ocom.grails.ErrorsMap.generateMap(value));   
       } 
      } 
     } 
    } 
} 

Где com.ocom.grails.ErrorsMap.generateMap (значение) будет иметь класс домена и возвращает массив ошибок

В контроллере вернуть JSON, как это

render JSON.use('angular') {responseJson as JSON} 

Это работало с Grails 2.3.11

0

Самый простой способ получить довольно JSON в Граалей от MAP, так:

[id:10, 
name:"", 
_errors: [name:"Name cannot be blank"], 
children: [field:"value", _errors:[], ...] 
] as grails.converters.JSON 
+1

Вы прочитали вопрос? – dsharew