在目前的Java项目中,我们最经常使用的便是JSON,不是传递JSON对象,就是返回JSON对象,甚至还把多个参数封装成JSON对象来进行传递,以便简化代码等!
但是,该如何操作代码才能正确的返回一个或者多个JSON对象呢??
要返回JSON对象,我们首先得有个JSON对象吧??
创建Person类,有着id,age,name等参数,并且重写getter,setter,toString等方法!
package com.example.demo.controller;
//将参数封装为对象
public class Person {
Integer id;
String name;
Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
那么,请看小编接下来的代码来进行返回JSON对象吧!!
@Controller
@RequestMapping("/return")
public class returnController {
//返回JSON
@ResponseBody
@RequestMapping("returnjson")
public Person returnJson(){
Person person=new Person();
person.setAge(10);
person.setId(88);
person.setName("张三");
return person;
}
}
在浏览器中输入:localhost:8080/return/returnjson
查看上图可知,浏览器自动帮我们封装解析了!!
上面便是返回JSON对象的代码了!
但是,仅仅只能返回一个,当我们有两个甚至多个JSON对象的时候,我们该如何处理??
比如下述代码:有两个JSON对象:
@Controller
@RequestMapping("/return")
public class returnController {
//返回JSON
@ResponseBody
@RequestMapping("returnjson")
public Person returnJson(){
Person person=new Person();
person.setAge(10);
person.setId(88);
person.setName("张三");
person.setAge(44);
person.setId(22);
person.setName("lisi");
return person;
}
}
那么,重启程序,刷新浏览器,最后的结果会是什么??
大家先猜想一下:
在浏览器输入:localhost:8080/return/returnjson
对比上述两个程序的运行结果,我们发现,返回的JSON数据变了!!
我们的本质想法是,将两个都给输出,比如
但是,为什么只会输出一个??该如何处理??其实这种操作很是简单,我们只需要将其封装到List集合或者其他集合即可!
那么,请看笔者代码:
//返回JSON
@ResponseBody
@RequestMapping("returnjson2")
public List<Person> returnJson2(){
Person person1 = new Person();
person1.setAge(10);
person1.setId(88);
person1.setName("张三");
Person person2 = new Person();
person2.setAge(44);
person2.setId(22);
person2.setName("lisi");
List<Person> persons = Arrays.asList(person1, person2);
return persons;
}
在浏览器输入:localhost:8080/return/returnjson2
那么,此时便是我们想要的结果!
对于返回更多的JOSN数据,我们也可以按此进行处理操作!