JSON位图数据

Jon*_*Oro 2 .net jquery json

是否可能或合理地将位图数据编码为JSON以在Web服务中返回?

更新:是的,这比我想象的要好.我为一组图像和图像数据组合创建了一个.NET复合对象

Public Class AllThumbnails Public imgAllThumbs As String Public positions()As Drawing.Rectangle End Class

并通过jQuery AJAX访问它:

$.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);
    }
});
Run Code Online (Sandbox Code Playgroud)

因为我的图像数据超出了标准的jsonSerialization缓冲区,所以我必须在web.config中增加一个值:

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

谢谢大家帮助.

Bal*_*usC 8

位图是二进制数据.JSON将表示为字符数据.因此,您需要将二进制数据转换为字符数据,反之亦然,而不会丢失信息.常用的编码是Base64.目前还不清楚你的目标是哪种编程语言,所以我无法给出更详细的答案,但几乎所有自尊的语言都有内置的Base64编码器或第三方库,可以做到这一点.PHP例如有base64_encode()base64_decode().Java有Apache Commons Codec Base64.对于JavaScript,有这个例子.等等.