有時候,寫接口的時候,需要傳好多屬性,往往以json數據的格式傳遞到后台,下面就來舉一個我寫的接口,主要是用來說明咋解析數據獲得需要的字段
首先,前端傳遞的wordsJson數據是這樣的:
{
"uid":"32854",
"IDCode":"000066",
"wordsJson":[
{
"dayNum":"7",
"name":"Tizhong"
},
{
"dayNum":"5",
"name":"BloodPressure"
},
{
"startTime":"2019-07-06",
"dayNum":"7",
"name":"buNum",
"endTime":"2019-07-12"
},
{
"dayNum":"7",
"name":"MealBloodSugar"
}
],
"words":"Tizhong,BloodPressure,buNum,MealBloodSugar"
}
后台如何解析穿度過來的這個json 字段:
拿到該字段轉換為json:
public void newUserbodyInfo(HttpServletResponse response,String json){ response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods","POST"); response.setHeader("Access-Control-Allow-Headers","x-requested-with,content-type"); if (StringUtils.isEmpty(json)){ CommonUtil.renderJson(response,MapUtil.setRequestCode(ResultCode.ERROR.getCode(),"",ResultCode.ILLEGAL_REQUEST_ARGUMENT.getDesc())); return; } JSONObject jsonObject = JSONObject.fromObject(json); //拿到傳遞來的值: String wordsJson = jsonObject.getString("wordsJson"); if (StringUtils.isEmpty(wordsJson)){ System.out.printIn("wordsJson不能為空!")); }else{
JSONArray jsonArray=JSONArray.fromObject(wordsJson); for (int i = 0; i < jsonArray.size(); i++) { Map map = (Map) jsonArray.get(i); String num=map.get("dayNum").toString(); String number= map.get("name").toString(); System.out.println(number+"==="+num); }
}
}
JSONArray jsonArray=JSONArray.fromObject(wordsJson);將獲得String 轉為 json數組,然后循環着個格式獲得數據。
2.另外一種:
獲得json格式是data:
{
"body":[
{
"tid":"24",
"tName":"協和血糖專家小組招募計划",
"date":[
{
"num":"5",
"tid":"0",
"type":"24"
},
{
"num":"1",
"tid":"1",
"type":"24"
},
{
"num":"1",
"tid":"2",
"type":"24"
}
]
}
],
"IOS_VERSION_CODE":"1000000",
"IOS_VERSION":"1.0",
"status":"1",
"ANDROID_VERSION_CODE":"1020006",
"ANDROID_VERSION":"1.2.6",
"msg":""
}
解析的話:
JSONObject jsonObject = JSONObject.fromObject(data); if (jsonObject.getInt("status") == 1){ List list1 = (List) jsonObject.get("body"); Map map = (Map) list1.get(0); List resultList = new ArrayList(); }
List list1 = (List) jsonObject.get("body");是將獲得json中獲取有用的body的數據,如下紅線的地方。

Map map = (Map) list1.get(0);則是將body中的數據轉為一個Map
接着就可以去Map中的值了。
這只是我用的json格式的數據,不一樣的傳遞不一樣、
