gpt4 book ai didi

Java - .Net 对象交换,不基于 Web

转载 作者:行者123 更新时间:2023-12-01 04:32:39 27 4
gpt4 key购买 nike

我有一个用 C# 实现的客户端-服务器系统,客户端和服务器通过序列化/反序列化交换 .Net 对象并通过 TCP/IP 进行通信。它在本地网络上运行,不是基于 Web 或基于 Internet。

现在我想包括通过 wifi 连接的 Android 客户端。再次强调,这只是本地网络,不是通过互联网,也不是基于网络的。 Android 编程将使用 Java。 (我知道 Android 版 Mono,但现在不想深入了解。)

是否有一些相当简单的方法来实现 Java 和 .Net 对象之间的对象到对象交换,当然前提是它们兼容?

我稍微研究了一下 JSON(Java 端的 Jackson 和 .Net 端的 Json.Net),我猜这可能是可以完成的,但前提是在每一端重新映射事物上付出巨大努力一旦对象变得相当复杂。

还有其他建议吗?基于 JSON 还是其他?

PS。我的问题与此有点相关 Mapping tool for converting Java's JSON to/from C# ,但它从未得到合适的答案,可能是由于问题中的信息不足。另外,我不在乎我最终是否使用基于 JSON 的传输或 XML 或其他东西。

最佳答案

我建议使用 JSON 或 XML(基于 .xsd 文件),因为它们独立于各自的实现(而不是类似于 Java 中的 ObjectOutputStream )。

在两个组件(客户端和服务器)之间采用这种格式的问题是它们需要具有相同的版本。我的最佳实践是有一个格式的底层定义(我使用带有 xsd 文件的 xml,该文件指定 xml 的外观),然后使用 jaxb 生成 java 类。这样您就可以在 java 部分中对 xml 进行编码(取消编码)。

我非常确定 .NET 世界中也存在类似的事情。

JSON 的大小比 xml 小,我发现 xml 更具可读性。

关于Java - .Net 对象交换,不基于 Web,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17809913/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com