【问题标题】:JSON and binary data. Java to .NETJSON 和二进制数据。 Java 到 .NET
【发布时间】:2011-07-06 18:53:55
【问题描述】:

我正在尝试将图像从 Android 传递到 WCF REST 服务作为 JSON 对象的一部分。

我的目标是使用最合适的数据类型。因此,在 .NET 端,我使用 byte[] 来存储收据上的数据,而在 Java 端,我也使用 byte[]。

首先我得到了异常,这是因为 Java 字节已签名。所以,我在 .NET 端创建了我的对象 sbyte[]。

这真的是最好的方法吗?还是我应该考虑 base64 并处理两端的序列化/反序列化?现在 JavaDeserializer 在 .NET 端处理它,而 GSON 在 Android 端处理它。

【问题讨论】:

    标签: c# java .net android json


    【解决方案1】:

    我认为最好的方法是将您的字节转换为 base64,消息大小会更短,并且从 base64 转换为字节的方法,反之亦然,在您使用的所有平台上都可以广泛使用。

    【讨论】:

      【解决方案2】:

      您应该传递原始(PNG 或 JPEG)图像数据,根本不对其进行序列化。

      【讨论】:

      • 是否可以对服务器进行单个请求?它是一堆带有附加属性和文本数据的非常小的图像。我宁愿把它当作一笔交易来处理。我认为序列化和处理为 1 个包会更好。
      • @katit:您可以发送多部分 MIME 请求。
      • 是否有关于 WCF REST 服务的多部分 MIME 内容的操作方法?而且我也不确定它是如何在 Android 端完成的......
      • 我正在朝这个方向挖掘更多。 Android 部分将是轻微的 PITA。 WCF 部分也不会很漂亮——主要是因为微软从来没有想出一种方法来解析这些 MIME 消息。还是他们?
      • MIME 使用 Base64 对二进制进行编码,因此实现起来更复杂。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 2014-01-29
      • 1970-01-01
      • 2013-08-16
      • 2014-04-03
      相关资源
      最近更新 更多