使用Jersey / JAXB / Jackson将Java.util.Map映射到JSON对象
我一直在尝试创建Jersey REST Web服务。我想从Java类接收和发出JSON对象,如下所示:
@XmlRootElement
public class Book {
public String code;
public HashMap<String, String> names;
}
应该这样将其转换为JSON:
{
"code": "ABC123",
"names": {
"de": "Die fabelhafte Welt der Amelie",
"fr": "Le fabuleux destin d'Amelie Poulain"
}
}
但是,我找不到为此的标准解决方案。似乎每个人都在实现自己的包装器
解决方案。这个要求对我来说似乎是最基本的。我不敢相信这是普遍接受的解决方案,尤其是因为Jersey确实是Java中更有趣的部分之一。
我还尝试了升级到Jackson 1.8,这仅给了我这一点,这是对JSON的极大混淆:
{
"code": "ABC123",
"names": {
"entry": [{
"key": "de",
"value": "Die fabelhafte Welt der Amelie"
},
{
"key": "fr",
"value": "Le fabuleux destin d'Amelie Poulain"
}]
}
}
有什么建议的解决方案吗?
-
我不知道为什么这不是默认设置,这花了我一段时间,但是如果您想使用Jersey进行JSON转换,请添加
<init-param> <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> <param-value>true</param-value> </init-param>
到您的web.xml,所有问题都应得到解决。
PS:您还需要摆脱
@XmlRootElement
注释才能使其正常工作
-
JAXB java.util.Map绑定
2021-01-30 关注 0 浏览92 1答案
-
如何使用JPA将映射JSON列映射到Java对象
2021-02-02 关注 0 浏览99 1答案
-
Java 日期格式映射到JSON Jackson
2021-02-02 关注 0 浏览77 1答案
-
将JSON数据映射到Java对象
2021-01-30 关注 0 浏览109 1答案
-
从json编码/解码到java.util.Map的库?
2021-01-31 关注 0 浏览91 1答案
-
如何使用JPA将Map(java.util.Map)对象持久保存在实体中并确保持久性级联?
2021-02-01 关注 0 浏览99 1答案
-
如何使用JPA将Map(java.util.Map)对象持久保存在实体中,并确保持久性级联?
2021-01-30 关注 0 浏览106 1答案
-
使用JPA批注映射java.util.Map时,键和值列名称将被覆盖
2021-02-01 关注 0 浏览90 1答案
-
java.util.Map的交集
2021-01-31 关注 0 浏览72 1答案
-
JAXB映射到JSON
2021-01-31 关注 0 浏览61 1答案