在SpringBoot框架下面返回Json数据非常的简单,只要给对应的Controller添加
@RestController
这个注解即可
示例:
@RestController
@RequestMapping(value = "admin/datas")
public class DatasController {
@Autowired
private ISenddataService senddataService;
@RequestMapping(value = "/{id}",method= RequestMethod.GET)
public Senddata getdatas(@PathVariable Integer id){
return senddataService.findByDeviceId(id);
}
}
我们来看一下输出的Json是什么样的格式:
[
{
"suwd": "24",
"suyl": "24",
"jsll": "24",
"jstds": "24",
"cstds": "24",
"ph": "24",
"yl": "24",
"ylv": "1",
"ycy": "24",
"zd": "24",
"rjy": "24",
"d_id": 1,
"sentem": "20173161723",
"id": 1
},
{
"suwd": "83.2",
"suyl": "62.19",
"jsll": "67.8",
"jstds": "46.9",
"cstds": "33.6",
"ph": "38.3",
"yl": "29.8",
"ylv": "23.5",
"ycy": "27.32",
"zd": "29.9",
"rjy": "28.2",
"d_id": 1,
"sentem": "20173161830",
"id": 2
},
{
"suwd": "35.67",
"suyl": "34.65",
"jsll": "45.67",
"jstds": "45.89",
"cstds": "77.56",
"ph": "34.54",
"yl": "42.13",
"ylv": "13.45",
"ycy": "24.23",
"zd": "45.56",
"rjy": "45.54",
"d_id": 1,
"sentem": "2017320530",
"id": 3
},
{
"suwd": "34",
"suyl": "35.65",
"jsll": "45.67",
"jstds": "57.88",
"cstds": "34.32",
"ph": "56.54",
"yl": "56.98",
"ylv": "45.76",
"ycy": "78.65",
"zd": "67.65",
"rjy": "23.56",
"d_id": 1,
"sentem": "20173201230",
"id": 4
},
{
"suwd": "69.78",
"suyl": "64.45",
"jsll": "45.76",
"jstds": "34.78",
"cstds": "24.45",
"ph": "24.37",
"yl": "23.89",
"ylv": "46.38",
"ycy": "63.26",
"zd": "69.73",
"rjy": "49.69",
"d_id": 1,
"sentem": "20173201540",
"id": 5
},
{
"suwd": "64.58",
"suyl": "23.43",
"jsll": "54.57",
"jstds": "45.78",
"cstds": "57.45",
"ph": "48.59",
"yl": "45.56",
"ylv": "34.78",
"ycy": "23.45",
"zd": "59.43",
"rjy": "39.78",
"d_id": 1,
"sentem": "20173201723",
"id": 6
},
{
"suwd": "54.29",
"suyl": "34.89",
"jsll": "58.45",
"jstds": "49.87",
"cstds": "45.78",
"ph": "40.76",
"yl": "48.87",
"ylv": "39.98",
"ycy": "69.45",
"zd": "58.98",
"rjy": "34.48",
"d_id": 1,
"sentem": "20173202024",
"id": 7
},
{
"suwd": "67.89",
"suyl": "59.70",
"jsll": "45.78",
"jstds": "48.89",
"cstds": "45.87",
"ph": "56.93",
"yl": "40.90",
"ylv": "59.89",
"ycy": "45.68",
"zd": "49.99",
"rjy": "46.90",
"d_id": 1,
"sentem": "20173202236",
"id": 8
},
{
"suwd": "35.90",
"suyl": "39.90",
"jsll": "58.90",
"jstds": "74.59",
"cstds": "59.98",
"ph": "59.98",
"yl": "69.94",
"ylv": "48.89",
"ycy": "49.98",
"zd": "54.40",
"rjy": "59.93",
"d_id": 1,
"sentem": "20173202339",
"id": 9
}
]
ai??键呢?
下面的才是我们需要的Json格式:
"pm25":{ "key":"",
"show_desc":0,
"pm25":{
"curPm":"255",
"pm25":"227",
"pm10":"255",
"level":5,
"quality":"重度污染",
"des":"老年人和心脏病、肺病患者应停留在室内,停止户外活动,一般人群减少户外运动。"
},
冷静下来,仔细一想
这边的
findByDeviceId()返回的是一个List,转换成Json格式的时候当然会缺少键,额
下面提供一种解决方法:
就是将原来放在List中的数据,放到Map中,
首先需要导入一个第三方的Json库:
<!--第三方的JSON库-->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib-ext-spring</artifactId>
<version>1.0.2<version>
</dependency>
private Map<String,Site> siteInfo;//存放Site信息
public JSONObject getSiteAndDevice(String id){
List<Site> list=iSiteService.findAll();
siteInfo=new HashMap<String,Site>();
for(Site list1:list){
siteInfo.put(list1.getS_id()+"",list1);//键值为从数据库中查询出来的id好
}
JSONObject test=JSONObject.fromObject(siteInfo);
return test;
}
这样就可以得到带键值的Json串了~~