我需要根据以下场景格式化restful服务的输出(xml)
我有一个键值对如下的类。
@XmlRootElement(name="columnValues")
public class KeyValueDTO {
private String key;
private String val;
@XmlElement(name="column")
public String getKey() {
return key;
}
@XmlElement(name="value")
public String getVal() {
return val;
}
}
假设我有这样的列表,由rest服务返回:
List<KeyValueDTO> mylist = new ArrayList<KeyValueDTO>();
KeyValueDTO dto1 = new KeyValueDTO();
dto1.key = "Name";
dto1.val = "alex";
KeyValueDTO dto2 = new KeyValueDTO();
dto2.key = "Age";
dto2.val = 23
mylist.add(dto1);
mylist.add(dt02);
我想生成如下输出
<Name>alex</Name>
<Age>20</Age>
但目前它提供了以下输出
<column>Name</column>
<value>alex</column>
<column>Age</column>
<value>20</column>
有人能告诉我如何做到这一点吗?
您可以尝试使用XmlAdapter:
java prettyprint-override">public class KeyValueAdapter extends XmlAdapter<String, List<KeyValueDTO>> {
@Override
public List<KeyValueDTO> unmarshal(String v) throws Exception {
// Needs implementation
return null;
}
@Override
public String marshal(List<KeyValueDTO> vs) throws Exception {
StringBuffer buffer = new StringBuffer();
for (KeyValueDTO v: vs) {
buffer.append(String.format("<%s>%s</%1$s>", v.key, v.val));
}
return buffer.toString();
}
}
然后将该适配器添加到bean中:
@XmlRootElement
public static class Wrapper {
@XmlJavaTypeAdapter(KeyValueAdapter.class)
List<KeyValueDTO> dtos;
}
有一个有趣的问题。。我们的防火墙后面有一个wordpress XML/RSS服务,该服务本地化到多个国家,可以与中文、俄文等完美结合。 为了公开这个服务,我们创建了一个简单的JSP服务,由于某些原因,它不会呈现外来字符。 任何想法都将不胜感激。
问题内容: 我想知道Java是否有某种类可以帮助输出格式化。我知道在C ++中,在iomanip中,有一个方法调用setw。我想知道Java是否有与此类似的东西。 问题答案: 看看java.util.Formatter。 String.format()提供了一个方便的包装器。 例如(从链接上的示例修改): 它超越了C的?printf格式。例如,它支持可选的语言环境,并且格式符号可以通过显式索引而不
问题:基于PersonDto中存在的规则值,我正在应用这些规则。在Rule1类中,我有一个修改id字段的逻辑。我正在设置新的id,我得到作为参数。 最后,我将结果存储到ArrayList中。 但是在ArrayList中,所有PersonDto的值都是我在应用规则时传递的最后一个id值。 例如: 正如您在上面的代码片段中所看到的,有两个ID10001和10002,但是当存储并打印结果时,所有元素中的
嗨,我使用restFul web服务服务器端代码公开的服务是 @requestmapping(value=“/getPerson”,method=requestmethod.post)public ModelAndView getPerson(@requestparam(“inputXml”)String inputXml){ ----------------------------------
我们可以看到格式化就是通过格式字符串得到特定格式: format!("{}", foo) -> "3735928559" format!("0x{:X}", foo) -> "0xDEADBEEF" format!("0o{:o}", foo) -> "0o33653337357" 根据使用的参数类型,同样的变量(foo)能够格式化成不同的形式:X, o 和未指定形式。 这个格式化的功能是通过 t
1.1.1. inputflinger 1.1.1. inputflinger inputflinger为输入事件服务,基于android源码修改。 源码路径:robot/frameworks/native/services/inputflinger 此服务为系统级服务,不允许第三方应用直接调用,不支持多实例运行。可由类似AMS(Apps Manager Service)级别的系统进程注册inpu