2010-05-21 7 views
2

비트 맵 데이터를 JSON으로 인코딩하여 웹 서비스에 반환 할 수 있습니까?JSON 비트 맵 데이터

업데이트 : 예, 이것은 내가 생각한 것보다 효과적입니다. 나는 Drawing.Rectangle 최종 클래스

으로 문자열로 함께 이미지 데이터와 이미지의 조합을 공공 위치를()

공공 클래스 AllThumbnails 공공 imgAllThumbs을 닷넷 복합 객체를 만들어 jQuery를 AJAX를 통해 액세스 thusly 히 :

$.ajax({ 
    type: "POST", 
    url: "WebService.asmx/makeAllThumbnailsImage", 
    data: "{DocumentNumber : \"" + DocumentNumber + "\"} ", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (response) { 
     var adl = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d; 

     var data = Base64.decode(adl.imgAllThumbs); 
     $('#output').append("<p><strong>" + data.length + "</strong></p>"); 
     $('#output').append("<p><strong><i>" + adl.positions.length + "<i></strong></p>"); 

    }, 
    failure: function (msg) { 
     $('#output').text(msg); 
    } 
}); 

내가 표준 jsonSerialization 버퍼 오버런 된 내 이미지 데이터 때문에 내 Web.config의의 값을 증가시켜야 않았다

 
    <system.web.extensions> 
    <scripting> 
     <webServices> 
     <jsonSerialization maxJsonLength="262144"> 
     </jsonSerialization> 
     </webServices> 
    </scripting> 
    </system.web.extensions> 

도와 주셔서 감사합니다.

+0

죄송합니다 :-) 시도 할 재미있을 것 - 밝혔다해야합니다. C# .NET 및 Javascript 및 jQuery를 사용하고 있습니다. –

+0

아무 문제 없습니다. 게시물을 수정 한 다음 필요에 따라 태그를 추가/제거하면됩니다. 이 게시물은 오래된 게시물이므로 추가하겠습니다. – jlafay

답변

8

비트 맵은 이진 데이터입니다. JSON은 문자 데이터로 표현됩니다. 따라서 정보의 손실없이 이진 데이터를 문자 데이터로 또는 그 반대로 변환해야합니다. 이를 위해 일반적으로 사용되는 인코딩은 Base64입니다. 어떤 프로그래밍 언어를 사용하고 있는지 명확하지 않으므로보다 자세한 답변을 드릴 수는 없지만 거의 모든 자존심이있는 언어에는 내장 된 Base64 인코더 또는이를 수행 할 수있는 타사 라이브러리가 있습니다. 예를 들어, PHP는 base64_encode()base64_decode()입니다. Java는 Apache Commons CodecBase64입니다. JavaScript의 경우 this example입니다. 등등.

2

소리는 Binary JSON입니다.

바이너리 JSON은 JSON과 유사한 문서의 이진 인코딩 직렬화입니다. JSON과 마찬가지로 BSON은 문서와 다른 문서 및 배열 내에있는 문서의 임베딩을 지원합니다. BSON도 에는 JSON 사양의 일부가 아닌 데이터 유형을 표현할 수있는 확장이 포함되어 있습니다. 예를 들어, BSON은 날짜 유형이 이고 BinData 유형이 있습니다.

BSON은 프로토콜 버퍼와 같은 이진 교환 형식과 비교할 수 있습니다. BSON은 프로토콜 버퍼보다 ​​스키마가 적습니다. 은 유연성 측면에서 이점을 줄 수 있지만 공간 효율성 측면에서 약간의 단점도 있습니다 (BSON은 일련 번호가 지정된 데이터 내에서 이름에 오버 헤드가 있음).