如何使用CURL将多个json字符串作为数据传递给JAX-RS端点

时间:2014-12-10 18:37:31

标签: json curl jax-rs

与此信息相关,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 '{} {}'

上述命令不起作用

1 个答案:

答案 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。