2016-12-16 4 views
0

에서 작동하지 않습니다, 나는 콘솔에 인쇄 된 다음 코드JSON.registerObjectMarshaller는 부트 스트랩

class BootStrap{ 
def init = { servletContext -> 
.... 
println "change the json before format" 
JSON.registerObjectMarshaller(Date) { 
    println "JSON DATE MARSHAL" 
    return it.format("yyyy-MM-dd HH:mm:ss") 
    } 
println "change the json after format" 
} 
} 

하지만 사용이 같다 :

| 1 개의 소스 파일 컴파일하기

| Grails 응용 프로그램 실행

활성 MQ 시작. ConsumerURL은 장애 조치입니다 : ssl : // xxx.

변화 포맷하기 전에 JSON

변화 형식

후 JSON | 서버 실행합니다. http://xxx

이상한 것은 "JSON DATE MARSHAL"이 인쇄되지 않는다는 것입니다. 하지만 코드를 컨트롤러에 넣을 때 작동했습니다.

나는 무슨 일이 일어 났는지 모른다.

제안 사항이 있습니다.


업데이트 : railsdog처럼 는 초기화의 폐쇄가 작동하지 않는 것 같다 고 말했다. 2016년 12월 15일 16시 44분 21초

하지만 내가 얻을 것은 2016-12-15T08입니다 : 내가 JSON에 날짜 형식을 가정 무엇

이처럼 44 : 21Z. 내가 컨트롤러에서 마샬를 넣어

, 그것은 일을하고, JSON의 날짜 형식은 예상대로 :

2016년 12월 15일 16시 44분 21초.

"JSON DATE MARSHAL"콘솔 출력도 표시됩니다.

답변

0

객체 marshaller를 등록해도 실제로 클로저가 실행/호출되지 않으므로 디버그가 생성되지 않는다고 가정합니다.

+0

답장을 보내 주셔서 감사합니다. 컨트롤러에 마샬 러를 넣으려고했는데 효과가있었습니다. 예상대로 디버그 인쇄물과 날짜 형식을 얻었습니다. –

+0

데모 프로젝트에서 테스트 할 때 작동합니다. 내 프로젝트 또는 IDE (아이디어) 문제와 같습니다. –

+0

하지만 marshaller의 println은 JSON이 호출 될 때 xx 렌더링이 실행될 때까지 실행되지 않습니다. –

0

grails 응용 프로그램 구성에서 marshaller checkout 등록 정보 grails.databinding.dateformats을 등록하는 대신. 앱에서 처리해야하는 다른 날짜 형식을 추가 할 수 있습니다.

+0

Michal_Szulc, 조언 해 주셔서 감사합니다. 아직도 폐쇄가 작동하지 않는 이유는 모르겠다. –