我正在使用Jackson从/向JSON文件中读取/写入数据,我有一个与用户POJO的问题。它有一个Map<Enum,Object>,这应该是联系用户的方式(因此它可以从0到7,取决于Enum)。我希望能够把方式联系使用JSF的形式。
我尝试了类似value="#{config.user.contacts[EMAIL_PRO]}"
的东西,其中EMAIL_PRO当然是一个枚举(稍后,用户应该能够自己选择枚举,但现在我尝试简单)。但是当我这么做的时候,错误是
JSON中不允许Map的关键字
我理解,因为我的调试程序说返回的值是{null = null}
。第一个问题既然map是空的,那么JSF应该像那样工作吗?键“EMAIL_PRO”还不存在,但JSF不应该为我做这些工作,并为键提供正确的值吗?
另一个问题更多的是关于Jackson和Map。正如我所说的,我的POJO User包含一个Map,JSON文件本身就是一个Map(包含多个用户)。
是否真的可以使用Jackson将Map写入此文件,其中Map为Map<String, Object>
,而Object包含Map<Enum, Object>
?如果是的话,怎么做?
谢谢你的帮助
PS:我不能改变我的API或POJO。
1条答案
按热度按时间3zwjbxry1#
我认为这是一个重复的职位,见How to convert hashmap to JSON object in Java
正如其中一个回复所说:
产出:
您也可以尝试使用Google的GSON。Google的GSON是将Java对象转换为JSON表示的最佳库