与此信息相关,JAX-RS Post multiple objects
如果我的资源端点接收List<String>
@POST
@Path("test")
@Consumes(MediaType.APPLICATION_JSON)
public void test(List<String> jsonStrings)
如何使用curl(命令行)调用此资源端点
curl -X POST -H "Content-Type: application/json" http://localhost:port/path/to/endpoint/test -d '{} {}'
上述命令不起作用
答案 0 :(得分:0)
'{} {}'
不是有效的JSON。 Java映射术语,java.util.List
将是JSON数组([]
)。因此有效输入为-d "[ \"hello\", \"world\" ]"
。由于您的列表只是一个简单类型字符串,因此您不需要任何大括号{}
,这些代表JSON对象。
这只是简单的字符串。如果你想要一个对象数组,那么你需要"[{\"word\" : \"hello\"},{\"word\": \"world\"}]"
之类的东西,其中列表List
类型就像
public class Hello {
private String word;
public String getWord() { return word; }
public void setWord(String word) { this.word = word; }
}
所以你会使用List<Hello>
。您还需要确保在应用程序中注册了JSON提供程序(用于POJO映射)。一些提供商将自动注册,其他提供商不会获得帮助如果您需要帮助,请提供您正在使用的JAX-RS实施,以及您是否使用Maven。