Spring webservice不会读JSON

时间:2014-04-24 10:14:38

标签: java json spring spring-mvc

由于编辑问题似乎没有提出更多答案,我将继续在新的帖子中提问。

问题是我正在尝试使用Spring建立一个非常基本的Web服务,我应该能够通过Java发送JSON。

但是我对Spring和网络服务都很新,所以我不知道在哪里进行故障排除。

旧问题:Getting a RESTful webservice with Spring to understand a JSON-string

现在我在控制器中有这个

@RequestMapping(value = "/toggleB")
public @ResponseBody String sendCommand(@RequestBody Ident ident) {
//body
}

Ident-class只有一个String作为变量,称为IP。

发送此字符串

 {"IP":"192.168.1.9"}

返回代码400。

事情是,我认为build.gradle(或pom.xml)中可能存在错误或遗漏。 如何将正确的Gradle / Spring项目组织为?

我的主要方法是runnable,看起来像这样:

 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.SpringApplication;
 import org.springframework.context.annotation.ComponentScan;

 @ComponentScan
 @EnableAutoConfiguration
 public class mainFile {
     public static void main(String[] args) {
         SpringApplication.run(mainFile.class, args);
     }
 }

我不使用任何bean作为配置,可能是我的程序失败了吗?

再次感谢您的回复! 我希望我不会像这样继续我的问题而违反规则,但我不知道如何打破旧的问题。 啊......对一个网站来说是全新的缺点,呵呵。

1 个答案:

答案 0 :(得分:2)

如果您在请求正文中发送JSON,请将其设置为POST或PUT请求,同时添加标头以接受json。将Json作为字符串获取,然后使用Json解析器将其解析为JsonNode或您想要的任何内容。最后返回一个ResponseEntity。下面是一个示例代码。如果需要,请在评论中提出具体问题以便澄清。

@RequestMapping(value = "/toggleB", method = RequestMethod.POST, headers = "Accept=application/json")
public ResponseEntity<java.lang.String> sendCommand(@RequestBody String ident) {

    // Do your stuff

    return new ResponseEntity<String>("Some response data/message",new HttpHeaders(), HttpStatus.OK);
}