2.4 从对象自动构建json
上一节返回的JSON字符串,是用字符串拼接构建的,如果要返回的数据更加复杂,就很容易出错,为了避免手动构建复杂的JSON串,Spring Boot可以直接从对象中生成JSON数据。下面是一个简单的例子。
首先在包com.example.restservice里创建一个类Greeting.java,这只是一个普通类,用来表示一个问候语(greeting),如代码所示:
package com.example.restservice;public class Greeting{ private final long id; private final String info; public Greeting(long id,String info){ this.id=id; this.info=info; } public long getId(){ return id; } public String getInfo(){ return info; }}
接下来把root函数修改如代码所示:
package com.example.restservice;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.bind.annotation.CrossOrigin;import org.springframework.web.bind.annotation.GetMapping; @RestController public class GreetingController{ @CrossOrigin @GetMapping("/") public Greeting root(){ Greeting greeting=new Greeting(0,"Good"); return greeting; }}
响应方法root直接返回对象,Spring Boot的HTTP消息转换器会自动将此对象序列化为JSON格式并发送。直接在浏览器上访问Spring Boot的服务,http://localhost:8081/,就可以看到响应的JSON,如代码7-9所示:
{
"id":0,"info":"Good"
}
这个JSON仍然可以在前端使用,只是id这个值并没有用到,前端不需要修改,刷新一下页面就可以看到Good在页面上。