理想情况下,写作应该仅仅是切换编写者的问题。一次写入将写入json和另一个xml。反过来也是如此,一个工厂采用json的InputStream,另一个采用xml的InputStream。在这两种情况下,绑定内容都会返回给定InputStream的对象流。
答案 0 :(得分:4)
XStream这样做非常好。
正常实例化(对于XML):
new XStream();
替代实例化(对于JSON):
new XStream(new JettisonMappedXmlDriver());
/**************** or ****************/
new XStream(new JsonHierarchicalStreamDriver());
答案 1 :(得分:1)
此外,虽然不是简单的lib,但JAX-RS实现(如Jersey,RESTeasy)提供了生成和使用JSON和xml的简单方法。它们根据所请求的媒体类型透明地处理后端库的选择。
建立立面也很简单;我首先将JAXB用于xml,将Jackson用于JSON;两者都可以使用InputStream或Reader,并使用OutputStream或Writer输出。并且两者在数据绑定方面都做得相当不错。
答案 2 :(得分:0)
如果您希望自己编写代码 - 对于Strategy pattern和Factory Method pattern来说,这听起来是个好例子