java - SpringMVC返回json串
问题描述
在用springmvc返回json串的时候,页面上只显示一个键值对,如图
目的是要获取这个样子的
{'text':'文本','flag':'文本'}
为什么会出现这种只有第一个键值对的情况。
contraller
import com.dcxm.stu.bean.Message;import com.dcxm.stu.bean.Student;import com.dcxm.stu.service.RegisterService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;@RestController@RequestMapping('/student')public class RegisterController { private Student student = new Student(); @Autowired private RegisterService registerService; @RequestMapping(value = '/register') public Message register(HttpServletRequest request, Model model) {student.setTelphone('13245648');student.setPassword('123465');System.out.println(registerService.studentRegister(student));return registerService.studentRegister(student); }}
在这个代码的末尾输出返回值任就是 正确的信息,但是在网页上显示就不真确了。
RegisterService
import com.dcxm.stu.bean.Message;import com.dcxm.stu.bean.Student;import com.dcxm.stu.dao.impl.RegisterDaoImpl;import com.dcxm.stu.service.RegisterService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class RegisterServiceImpl implements RegisterService { @Autowired private RegisterDaoImpl registerDao; public Message studentRegister(Student student) {String telphoneNew = student.getTelphone();System.out.println('new Tel ' + telphoneNew);Message message = new Message();int row = registerDao.insertInfo(student);if (row == 1) { message.setText('注册成功'); message.setFlag('true');} else { message.setText('电话号码已经被注册'); message.setFlag('false');}return message; }}
Message
public class Message { private String flag; private String text; public void setText(String text) {this.text = text; } public String getText() {return text; }public Message() { } public Message(String text, String flag) {this.flag = flag;this.text = text; } @Override public String toString() {return text + ' ' + flag; } public void setFlag(String flag) {this.flag = flag; }}
上面是问题代码。
后来我写了一个简单的测试
@RestControllerpublic class StudentInfo { Student student = new Student(); @RequestMapping('/test') public Student getStudentInfo(){student.setUsername('123');student.setPassword('123');student.setTelphone('123');//language=JSONreturn student; }}
却能正确的返回json
{'username':'123','password':'123','telphone':'123'}
问题解答
回答1:Message缺少:
public String getFlag() { return flag;}
相关文章:
1. redis sentinel怎么跑守护进程以及日志记录位置的?2. django - Nginx uwsgi 进程问题3. javascript - sublime快键键问题4. 前端 - 这段代码一直生效不了,查半天因为 top: 0px; 分号后一个隐藏的东西,也不是占位符...删了就可以生效,这是什么情况。。5. javascript - 爱加密的HTML5应用加固服务是什么原理?6. 微信小程序支持跳转到外部链接网页吗7. javascript - 求助关于js正则问题8. 关于纯用css写导航鼠标移入事件的问题?9. 百度地图api - Android百度地图SDK,MapView上层按钮可见却不可触,怎么解决?10. 求救一下,用新版的phpstudy,数据库过段时间会消失是什么情况?

网公网安备