在Java <-> Java/C#/Objective-C之间进行通信

3
什么是Java与Java/C#/Objective-C之间最好的通信方式?
我们有Java作为服务器组件,Andorid,Windows Phone和iOS作为客户端。目前我们使用json作为通信媒介,我们使用库进行de/serialization,它们很好,速度也可以,易于调试。但是每当我们向现有对象添加新对象或新字段时,就需要花费一些精力更新映射并在所有平台上进行更改。
我们一直在研究protobuf和thrift,protobuf看起来不错,但似乎没有官方支持objective-c,而且它是二进制的?难以调试?另一方面,thrift不支持多态性,而我们确实需要它。
这该怎么办才能最好地解决问题?是否有任何现有技术可供利用?每个人都是如何解决这个问题的?
提前感谢。

你在使用哪个库进行序列化/反序列化?我认为在JSON通信中,新的更改很容易适应。 - sanbhat
我们在Java中使用Jackson来进行序列化和反序列化。在Android中,我们可以轻松地重用对象。但是在C#和Objective-C中,每当服务器添加一个新字段或对象时,我们都必须手动添加一个新的字段或对象。 - Roy Chan
我认为XML或JSON是合理的选择。 - tkr
但是所使用的库和/或您的架构应该允许兼容更改而无需重新部署客户端。添加一个字段不应该破坏客户端。 - tkr
1个回答

0
在Objective-C中,您可以使用JSONKit,它非常简单。
使用方法如下:
NSDictionary *dic = [recieveStr objectFromJSONString];
NSString *str = [arr JSONString];

我认为问题是:“但无论何时我们向现有对象添加新对象或新字段,都需要花费一些精力来更新映射并在所有平台上进行更改。” - I4V
添加一个新对象或在现有对象中添加一个新字段,不会影响客户端。如果客户端不需要使用新增的新字段,则无需担心。 - phenmod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接