是否有适用于XML和JSON读者/编写者的良好“标准”Java接口?

时间:2012-12-10 23:54:14

标签: java xml json interface

基本上,我希望有一个接口,用于将对象转换为XML或JSON字符串表示形式,例如

public interface IStringifier{

/**
   Converts the Object to it's String representation, e.g. XML or JSON
*/
   public String toString(Object o);

/**
   Converts from the String representation (e.g. XML or JSON) to an Object
*/
   public Object fromString(String s, Class<?> clazz);
}

这样的接口在GSON,XStream等中实现起来相当简单,但是通过抽象它,你就不会知道底层发生了什么。并且您与许多XML或JSON库中的一个分离,因此客户可以更自由地选择他们喜欢的。

是否有任何“标准”Java接口?番石榴,阿帕奇等的东西?


(补充)没有一个答案是我真正想要的(“是的,在javax.obscure.interfaces中有你想要的东西”)但是感谢回复。我会接受汤姆的回答是最具信息性/挑衅性的。也许我会清理我的代码并尝试创建一个标准。 : - )

4 个答案:

答案 0 :(得分:3)

JAXB (JSR-222)是用于将对象转换为XML或从XML转换对象的Java SE / EE标准。它可以独立使用,是JAX-WS(SOAP)和JAX-RS(RESTful)Web服务的标准绑定层。以下是通过jaxb.properties文件指定备用提供程序的示例的链接。

目前还没有用于JSON绑定的标准API。

答案 1 :(得分:1)

XML和JSON是无关的,所以这实际上是两个问题:

对于JSON,虽然“非官方”,但是一个受欢迎的库是GSON

对于XML,请参阅Blaise's answer

答案 2 :(得分:1)

我认为你是在思考这个问题。您实际上并不关心将对象转换为Strings,您希望能够在不知道格式是什么的情况下将对象序列化为不同的格式。但谁说不同的格式是一个字符串?当您希望对象作为协议缓冲区可用时会发生什么?这是一种二进制格式,而不是字符格式 - 所以stringify()对此没有帮助。最终,由您来构建应用程序尽可能独立于这些细节。

答案 3 :(得分:0)

一个流行的JSON-to-Java绑定库是Jackson 一个流行的XML-to-Java绑定库是XStream

如果您打算在Web应用程序中使用它,也许您想考虑Spring 3 MVC的设施。通过注释,它可以自动进行转换,您可以告诉它您是想要XML还是JSON(或其他各种格式)。这可能是您正在寻找的通用界面。