首先
参考上一篇文章JSONObject详解 解析字符串,有简单的也有复杂的
下面是一段简单的json数据
这其实就是jsonobject
{
"code": 1,
"deviceName": "GNSS-01",
"basedata": [
{
"X": 0,
"Y": 0,
"Z": 0,
"createDate": "2021-04-07T06:05:31.000Z"
}
],
}
参考restTemplate 调用第三方接口获取json数据 这里面已经获得json数据并且封装到jsonobject中
用jsonobject来解析
//解析数组
JSONArray basedata = jsonObject.getJSONArray("basedata");
System.out.println(basedata);
//解析basedata里面的数据
for (int i = 0; i <basedata.size(); i++) {
JSONObject jsonObject1 = basedata.getJSONObject(i);
System.out.println(jsonObject1);
String x = jsonObject1.getString("X");
System.out.println(x);
String createDate = jsonObject1.getString("createDate");
System.out.println(createDate);
}
//解析字符串
String code = jsonObject.getString("code");
System.out.println(code);
String deviceName = jsonObject.getString("deviceName");
System.out.println(deviceName);
解析数组
JSONArray basedata = jsonObject.getJSONArray("basedata");
解析字符串
String deviceName = jsonObject.getString("deviceName");
复杂解析 解析basedata里面的数据
{
"code": 1,
"deviceName": "GNSS-01",
"basedata": [
{
"X": 0,
"Y": 0,
"Z": 0,
"createDate": "2021-04-07T06:05:31.000Z"
}
],
}
或者里面的数据
JSONArray basedata = jsonObject.getJSONArray("basedata");
System.out.println(basedata);
//解析basedata里面的数据
for (int i = 0; i <basedata.size(); i++) {
JSONObject jsonObject1 = basedata.getJSONObject(i);
System.out.println(jsonObject1);
String x = jsonObject1.getString("X");
System.out.println(x);
String createDate = jsonObject1.getString("createDate");
System.out.println(createDate);
}