json数据的格式种类:
1、JSONArray数组类型:
[{"DeviceEntityAID":"1cba8ca2727107000000","deviceName":"会议室窗帘","BuildingOID":601,"floorName":"会议室","DeviceCategoryOID":5,"DeviceCategoryAID":"Curtain","Curtain_Status":"ff","DeviceEntityOID":"696"},{"DeviceEntityAID":"7c669d460bf907000100","deviceName":"研一部窗帘","BuildingOID":609,"floorName":"研发一部工作区","DeviceCategoryOID":5,"DeviceCategoryAID":"Curtain","Curtain_Status":"00","DeviceEntityOID":"783"},{"DeviceEntityAID":"7c669d460bf907000200","deviceName":"研二部西窗帘","BuildingOID":610,"floorName":"研二土豪部","DeviceCategoryOID":5,"DeviceCategoryAID":"Curtain","Curtain_Status":"00","DeviceEntityOID":"784"},{"DeviceEntityAID":"7c669d460bf907000300","deviceName":"研二部东窗帘","BuildingOID":610,"floorName":"研二土豪部","DeviceCategoryOID":5,"DeviceCategoryAID":"Curtain","Curtain_Status":"00","DeviceEntityOID":"949"}]
1.1解析出来直接存在List中去使用
Scen_str是从服务器上得到的json数据tostring后的字符串。
private List<Map<String, Object>> getData() {
data = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
JSONArray ja = null;
try {
ja = new JSONArray(Scen_str);
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// if (ja != null)
// ja = new JSONArray();
if (ja != null)
for (int i = 0; i < ja.length(); i++) {
try {
JSONObject jo = (JSONObject) ja.get(i);
map = new HashMap<String, Object>();
for (@SuppressWarnings("rawtypes")
Iterator iter = jo.keys(); iter.hasNext();) {
String key = (String) iter.next();
map.put(key, jo.getString(key));
}
data.add(map);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
return data;
}
1.2 直接解析,取出对自己有用的对象和数据:
Cu_str是从服务器上得到的json数据ToString后的字符串。
// 遍历JSON数据
public void changeUI() {
try {
parent1.removeAllViews();
System.out.println("123456789" + Cu_str);
jsonary = new JSONArray(Cu_str);
for (int i = 0; i < jsonary.length(); i++) {
jsonObj = jsonary.getJSONObject(i);
int DeviceEntityOID;
String DeviceEntityAID = "000000";
boolean STATUS = false;
String deviceName = "";
ImageView tv_image3=new ImageView(getActivity());
DeviceEntityOID = Integer.valueOf(jsonObj
.getString("DeviceEntityOID"));
System.out.println("DeviceEntityOID的数据是::" + DeviceEntityOID);
deviceName = jsonObj.getString("deviceName");
DeviceEntityAID = jsonObj.getString("DeviceEntityAID");
System.out.println("deviceEntityAID的接收到的数据是::"
+ DeviceEntityAID);
if (jsonObj.getString("Curtain_Status").equals("7f")||jsonObj.getString("Curtain_Status").equals("00")
) {
STATUS = false;
tv_image3
.setBackgroundResource(R.drawable.curtain_guan);
}
if (jsonObj.getString("Curtain_Status").equals("ff")) {
STATUS = true;
tv_image3
.setBackgroundResource(R.drawable.curtain_press);
}
// ACTS_Mode=jsonObj.getString("ACTS_Mode");
// ACTS_Wind=jsonObj.getString("ACTS_Wind");
fun(DeviceEntityOID, DeviceEntityAID, deviceName, STATUS,tv_image3);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
System.out.println("Json parse error!");
e.printStackTrace();
}
}
取出数据后,即可根据自己的需要 对其数据进行操作。
2.JSONObject 对象数据
{"IndividualAirconditioning":[{"DeviceEntityAID":"7c669d460bf90f000000","deviceName":"处长办公室空调","BuildingOID":599,"floorName":"浴室test","DeviceCategoryOID":13,"DeviceCategoryAID":"IndividualAirconditioning","AC_SwitchStat":"0000","AC_Mode":"05","AC_Wind":"0002","AC_Profile_Temp":"2℃","DeviceEntityOID":"713"},{"DeviceEntityAID":"1cba8ca272710f000500","deviceName":"前台空调","BuildingOID":599,"floorName":"浴室test","DeviceCategoryOID":13,"DeviceCategoryAID":"IndividualAirconditioning","AC_SwitchStat":"0000","AC_Mode":"04","AC_Wind":"0002","AC_Profile_Temp":"15℃","DeviceEntityOID":"718"}],"Light":[{"DeviceEntityAID":"1cba8ca8667806000100","deviceName":"管理部灯","BuildingOID":599,"floorName":"浴室test","DeviceCategoryOID":4,"DeviceCategoryAID":"Lamp","Switch_Status":"00","DeviceEntityOID":"594"},{"DeviceEntityAID":"1cba8ca8667806000700","deviceName":"过道灯","BuildingOID":599,"floorName":"浴室test","DeviceCategoryOID":4,"DeviceCategoryAID":"Lamp","Switch_Status":"00","DeviceEntityOID":"600"},{"DeviceEntityAID":"1cba8ca8667806000800","deviceName":"茶水间灯","BuildingOID":599,"floorName":"浴室test","DeviceCategoryOID":4,"DeviceCategoryAID":"Lamp","Switch_Status":"00","DeviceEntityOID":"601"},{"DeviceEntityAID":"1cba8ca2727105000900","deviceName":"前台灯","BuildingOID":599,"floorName":"浴室test","DeviceCategoryOID":4,"DeviceCategoryAID":"Lamp","Switch_Status":"ff","DeviceEntityOID":"602"},{"DeviceEntityAID":"1cba8ca2727105000a00","deviceName":"公司logo灯","BuildingOID":599,"floorName":"浴室test","DeviceCategoryOID":4,"DeviceCategoryAID":"Lamp","Switch_Status":"ff","DeviceEntityOID":"603"},{"DeviceEntityAID":"1cba8ca2727105000500","deviceName":"这是哪个灯","BuildingOID":599,"floorName":"浴室test","DeviceCategoryOID":4,"DeviceCategoryAID":"Lamp","Switch_Status":"00","DeviceEntityOID":"706"}],"Curtain":[],"EnvMonitor":[],"Outle":[]}
1.1、放在一起全部取出来,请且保存在List中
private List<Map<String, Object>> getData() {
data = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
try {
jsonObject = new JSONObject(Fj_str);
System.out.println("我输出的字符串到底哟没有----------------" + Fj_str);
if (jsonObject.has("IndividualAirconditioning"))
if (jsonObject.has("Curtain"))
if (jsonObject.has("Light"))
if (jsonObject.has("EnvMonitor"))
if (jsonObject.has("Outle"))
jsonArray1 = jsonObject
.getJSONArray("IndividualAirconditioning");
jsonArray2 = jsonObject.getJSONArray("Curtain");
jsonArray3 = jsonObject.getJSONArray("Light");
jsonArray4 = jsonObject.getJSONArray("EnvMonitor");
jsonArray5 = jsonObject.getJSONArray("Outle");
joinJSONArry(jsonArray1, jsonArray2, jsonArray3, jsonArray4,
jsonArray5);
System.out.println("我输出的字符串到底哟没有:::::::" + bufferString);
jsonArray = new JSONArray(bufferString);
if (jsonArray == null)
jsonArray = new JSONArray();
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
for (int i = 0; i < jsonArray.length(); i++) {
try {
JSONObject jo = (JSONObject) jsonArray.get(i);
JSONObject jo1 = (JSONObject) jsonArray.get(0);
map = new HashMap<String, Object>();
for (@SuppressWarnings("rawtypes")
Iterator iter = jo.keys(); iter.hasNext();) {
String key = (String) iter.next();
map.put(key, jo.getString(key));
}
buildingOID1 = Integer.valueOf(jo1.getString("BuildingOID")
.toString());
deviceName1 = jo1.getString("deviceName");
data.add(map);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return data;
}
如果你不想放在List中,那你就不要用List。简单的取出你要的数据即可。