我正在使用springBoot构建json数据。我想要另一种方式的数据 我得到这个回应
[
{
"id": "Spring",
"name": "Spring FrameWork",
"description": "Spring Frame work descreption"
},
{
"id": "java",
"name": "java FrameWork",
"description": "Java Frame work descreption"
},
{
"id": "javascript",
"name": "javascript FrameWork",
"description": "java script Frame work descreption"
}
]
我想要这样的回复
"topics":[
{
"id": "Spring",
"name": "Spring FrameWork",
"description": "Spring Frame work descreption"
},
{
"id": "java",
"name": "java FrameWork",
"description": "Java Frame work descreption"
},
{
"id": "javascript",
"name": "javascript FrameWork",
"description": "java script Frame work descreption"
}
]
我的春季启动代码是:
@RequestMapping("/topics")
public List<Topic> getAllTopics() {
return topicService.getAllTopics();
}
我的主题模型:-
public class Topic {
private String id;
private String name;
private String description;
public Topic() {
}
public Topic(String id, String name, String description) {
super();
this.id = id;
this.name = name;
this.description = description;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
我需要在代码中添加什么,以便JSON数据应包含该列表的名称。 可以使用JSON数据对象完成此操作。但是还有其他方法吗? 请回答我的问题
答案 0 :(得分:2)
创建地图并返回
@RequestMapping("/topics")
public Map<String, List<Topic>> getAllTopics() {
Map<String, List<Topic>> response = new HashMap<String, List<Topic>>();
response.put("topics", topicService.getAllTopics());
return response;
}
答案 1 :(得分:1)
这不是有效的json。
"topics":[
{
"id": "Spring",
"name": "Spring FrameWork",
"description": "Spring Frame work descreption"
},
{
"id": "java",
"name": "java FrameWork",
"description": "Java Frame work descreption"
},
{
"id": "javascript",
"name": "javascript FrameWork",
"description": "java script Frame work descreption"
}
]
根据JSON Docs,json应该以{{1}}或{
开头。
正确的json是:
[
并在响应中实现这种格式:
{
"topics": [
{
"id": "Spring",
"name": "Spring FrameWork",
"description": "Spring Frame work descreption"
},
{
"id": "java",
"name": "java FrameWork",
"description": "Java Frame work descreption"
},
{
"id": "javascript",
"name": "javascript FrameWork",
"description": "java script Frame work descreption"
}
]
}
public class TopicsData {
List<Topic> topics;
// getters and setters
}
对象中设置主题列表TopicsData
或控制器代码以返回topicService
对象,而不是TopicsData
。答案 2 :(得分:0)
您可以通过将Topics添加到另一个类(例如TopicResponse)来实现。将此作为您的控制器返回类型:
public class TopicResponse {
List<Topic> topics;
//and getter / setter of topics
}