繁体   English   中英

在Jackson中序列化数组类型和数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM