2017-09-28 1 views
0

작은 질문이지만 인터넷에서 답변을 찾을 수 없습니다 ... 또는 검색 할 위치를 모르겠습니다. POJO가 ByteArrayOutputStream, FlatBuffers 또는 다른 라이브러리를 사용하여 바이트를 직렬화 한 Restful 메서드 (Java EE)를 클라이언트에 반환 할 가능성이 있습니까? 그리고 클라이언트는 jquery 또는 javascript (우리 클라이언트 측)를 사용하여 바이트를 POJO 객체로 다시 캐스트 할 수 있습니까? 에서저지 클라이언트 측이 pojo us 바이트를받습니다.

감사합니다 (지금까지 발견 한 무엇을하는 JSON/XML을 다시 수신) 고급

답변

1

직접하는 방법을 알 수 없습니다 (자바 스크립트 정도) 클라이언트로 작동하지 않습니다 바이트로 POJO로 변환 바이트를 다시 POJO로 변환하십시오. 당신이 할 수있는 일은 이것입니다. 귀하의 응답이 objA라고 가정하십시오. 이렇게해라. objA를 String으로 변환하고 (JSON 어쩌면) Base64로 인코딩하여 byte []를 얻습니다. 래퍼 객체 objB에 넣습니다. 서비스에서 JSON으로 objB를 반환하십시오. 당신의 클라이언트는 단지 그 바이트 []를 취할 수 있고 바이트 []가 base64라는 것을 알고 있으므로 거기에서 원래의 정보를 얻을 수 있습니다. XML/JSON 대신이 작업을 수행 할 의향이 있습니까?

+0

다른 말로하면 Jersey 응답의 클라이언트 (javascript) 측에서 직렬화를 해제 할 수있는 다른 방법이 없습니다. 그 목적은 저지 (우리 기능)와 빈즈 (우리가 응답의 형식으로 되돌림)를 결합하는 것이 었습니다. JSON/XML에서 POJO로 변환 할 필요가 없습니다. 대신 POJO를 직접 받으십시오. 또한이 조언을 사용하려고합니다 : https://www.youtube.com/watch?v=IwxIIUypnTE (JSON을 보내지 않고 대신 바이트를 사용하는 것) –

+0

당신이 말하는 POJO는 Java 객체입니다. 표준 Java IO를 사용하여 직렬화하면 어떤 클라이언트가 데이터를 다시 역 직렬화하는 방법을 알 수 있습니까? 직렬화의 광기에는 몇 가지 방법이 있어야합니다. byte [] 데이터를 JSON 객체에 랩핑하지 않고 클라이언트에도 직접 보낼 수 있습니다. 해당 바이트에 대한 특정 인코딩이 있는지 확인하십시오. Else 클라이언트는 그 바이트들로 무엇을해야하는지 알지 못할 것입니다. – Gautam

관련 문제