我有Enum Class。我需要从Spring控制器发送一个Enum类响应。 我无法理解如何在Spring控制器中将类作为Response发送。请帮助我。
答案 0 :(得分:1)
如果你想要返回所有枚举值而不是尝试这样的东西:
@GetMapping("enum")
public List<MyEnum> paymentMethods() {
return Arrays.asList(MyEnum.values());
}
public enum MyEnum {
FIRST, SECOND, THIRD;
}
答案 1 :(得分:1)
您可以在响应中添加杰克逊可以反序列化的任何内容
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class HelloControllerTest {
@Autowired
private MockMvc mvc;
@Test
public void monday() throws Exception {
String json = new ObjectMapper().writeValueAsString(DayOfWeek.MONDAY);
mvc.perform(MockMvcRequestBuilders.get("/monday").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk())
.andExpect(content().string(equalTo(json)));
}
@Test
public void days() throws Exception {
String json = new ObjectMapper().writeValueAsString(Arrays.asList(DayOfWeek.values()));
mvc.perform(MockMvcRequestBuilders.get("/days").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk())
.andExpect(content().string(equalTo(json)));
}
}
您可以通过以下测试向自己证明这一点,只需手动执行Jacskon反序列化
keywords: "This is a key phrase\r\nThis is a key phrase too\r\nThis is also a key phrase"