[英]Serializing array types and arrays in Jackson
我有一个使用Java中的Jackson将诸如RPC消息之类的类序列化为JSON的任务。 我必须说,我是Jackson的新手。 现在,我正在尝试将数组类型序列化为JSON。
我有:
ObjectMapper mapper = new ObjectMapper();
然后将一条消息放入HashMap(简化)
LinkedHashMap<String,Object> map = new LinkedHashMap<String, Object>();
if(msg.getSignal())
map.put("signal",msg.getMethodName());
else {
map.put("method", msg.getMethodName());
map.put("retT", msg.getReturnType()); //returns Class<?> type
}
return mapper.writeValueAsString(wrapper);
对于方法名称“ add”并返回int []类型,结果为:
{"method":"add","retT":"[I"}
谁能帮我实现“ [int]”而不是“ [I]”吗?
我假设'msg.getReturnType()'返回Class; 如果是这样,Jackson只会在其上调用toString()。 如果是这样,您可能想自己进行转换,以获得所需的实际String值。
您还可以稍微简化一下代码,因为ObjectMapper具有'writeValueAsString()'方法:
return mapper.writeValueAsString(wrapper);
它将在内部处理StringWriter和JsonGenerator的创建,以实现您的工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.