是否有一个好的"standard" Java 接口用于 XML 和 JSON 读取器/编写器?



基本上,我想要一个接口来将对象转换为/从其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中,有你想要的"),但感谢您的回复。 我会接受汤姆的回答,认为这是最翔实/最具挑衅性的。 也许我会清理我拥有的代码并尝试创建一个标准。 :-)

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

  • http://blog.bdoughan.com/2011/05/specifying-eclipselink-moxy-as-your.html

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

我认为

你想多了。您实际上并不关心将对象转换为Strings,您希望能够在不知道该格式是什么的情况下将对象序列化为不同的格式。但是谁说不同的格式是字符串?当您希望对象可用作协议缓冲区时,会发生什么情况?这是一种二进制格式,而不是字符格式 - 所以stringify()在那里无济于事。最终,由你来构建你的应用程序,使其尽可能独立于这些细节。

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

对于 JSON,虽然是"非官方的",但流行的库是 GSON。

对于 XML,请参阅 Blaise 的答案

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

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

最新更新