JSON字符串數組形如
[{"condition":"trigger","data":{"deviceId":7697,"index":"1002","value":"1"}},{"condition":"periodOfTime","data":{"leftInterval":1542859200000,"rightInterval":1543550400000}},{"condition":"devicesStatus","data":[{"deviceId":7697,"index":"1005","value":"1"},{"deviceId":7697,"index":"1006","value":"3"}]}]
解析完成後是這樣的
現在要求如下,我們需要獲取deviceId的值,直接上代碼
public class Test {
public static void main(String[] args) {
System.out.println(gettrigger());
System.out.println(getaction());
}
public static Object gettrigger(){
String s = "[{\"condition\":\"trigger\",\"data\":{\"deviceId\":7697,\"index\":\"1002\",\"value\":\"1\"}},{\"condition\":\"periodOfTime\",\"data\":{\"leftInterval\":1542859200000,\"rightInterval\":1543550400000}},{\"condition\":\"devicesStatus\",\"data\":[{\"deviceId\":7697,\"index\":\"1005\",\"value\":\"1\"},{\"deviceId\":7697,\"index\":\"1006\",\"value\":\"3\"}]}]";
JSONArray jsonArray = JSONArray.parseArray(s);
for (Object object : jsonArray) {
if (object instanceof JSONObject) {
JSONObject jsonObject = (JSONObject) object;
if (jsonObject.containsKey("condition")) {
String condition = jsonObject.getString("condition");
if (condition.equals("trigger")) {
JSONObject dataJSON = jsonObject.getJSONObject("data");
Object deviceDescribe = dataJSON.get("deviceId");
if (deviceDescribe == null) {
return null;
}
return deviceDescribe;
}
}
}
}
return null;
}
最終結果如圖