【发布时间】:2017-07-13 08:07:52
【问题描述】:
我创建了一个简单的 POST REST Web 服务,它使用一个名为 Track 的复合对象,其中包含一个 HashMap。 但是,当我使用 POSTMAN 对其进行测试并传递 JSON 字符串时,它不会将 json 中存在的 hashmap 反序列化为下面定义的 TestObj POJO 当我调试代码时,我看到地图为空,填充了其他值。
这里是代码
//Java类定义
@XmlRootElement
public class Track {
String title;
String singer;
TestObj test;
public TestObj getTest() {
return test;
}
public void setTest(TestObj test) {
this.test = test;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
@Override
public String toString() {
return "Track [title=" + title + ", singer=" + singer + "]";
}
}
public class TestObj {
String name;
Map<String,String> testMap;
public Map<String, String> getTestMap() {
return testMap;
}
public void setTestMap(Map<String, String> testMap) {
this.testMap = testMap;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
// 输入我从 POSTMAN 传递的 JSON 字符串
{ "title": "进入睡魔", “歌手”:“金属乐队”, “测试”: { “姓名”:“约翰”, “测试地图”:{ “1”:“1”, “2”:“2” } } }
我的 REST POST 服务
@POST
@Path("/posttrack")
@Consumes(MediaType.APPLICATION_JSON)
public Response createTrackInJSON(Track track) {
String result = "Track " + track;
return Response.status(201).entity(result).build();
}
【问题讨论】:
-
地图是 {null} 还是空地图,即它已构建,但没有条目?
-
[它的空地图]
-
这方面有什么更新吗?