从字节数组和mime类型转换为字符串/对象

问题描述:

给定一个MIME字符串,我该如何解析它才能提取字符集?是否有一个实用工具将不同的MIME类型映射到对象类型(例如,为text/xml和application/xml返回'xml')从字节数组和mime类型转换为字符串/对象

Jersy的MediaType有一个valueOf静态方法来解析MIME。

它也支持创建对象给定的值流。不幸的是,它看起来不能单独使用。

那么,给定一个已知字符集的字节数组,字符串很简单:

String result = new String(byteArray, charset); 

所以你的第一个问题是减少到“什么是从中提取MIME类型字符集的最简单的方法?”。这取决于您希望能够处理的输入范围以及您已经使用的库。例如,一种这样做的方法是使用javax.mail.internet.ContentType来进行解析;我相信其他库提供类似的功能。

至于第二部分,我不确定“转换为对象”是什么意思。 Java中的所有东西(不包括基元)已经是Object;如果你正在谈论更具体的东西,那么你需要是更具体的。没有通用的框架可以从任何东西魔法转换为任何东西,所以你需要在那里缩小你的需求。

使用Andrzej的方法,如果您的意思是您刚刚获得的String对象是一个XML,那么可以将其转换为Java对象。一个简单的技术是;

  1. 从字符串创建一个XML文档对象。
  2. 将XML文档对象转换为Java对象。

有第二部分可用的各种库/ API。很少参考;

  1. 蓖麻(http://www.castor.org/xml-framework.html
  2. XStream的(http://x-stream.github.io/

这些库是相当容易使用。