我現在有一個字符串是這樣:
{ "msg": { "resCode": "0000", "attrName": "sensorData",
"result": { "food1": 0, "water": 0, "food2": 106, "humidity": "152.42", "temprature": "103.65" } } }
我要獲取的是嵌套在msg里的result中的所有數據。
先用msg和result分別創建bean類,把Result作為msg的其中一個變量
1 public class SensorBean implements Serializable { 2 3 private Result result; 4 5 private int resCode; 6 7 private String attrName;10 11 public Result getResult() { 12 return result; 13 } 14 15 public void setResult(Result result) { 16 this.result = result; 17 } 18 19 public int getResCode() { 20 return resCode; 21 } 22 23 public void setResCode(int resCode) { 24 this.resCode = resCode; 25 } 26 27 public String getAttrName() { 28 return attrName; 29 } 30 31 public void setAttrName(String attrName) { 32 this.attrName = attrName; 33 }42 43 @Override 44 public String toString() { 45 return "Msg{" + 46 "result=" + result.toString() + 47 ", resCode=" + resCode + 48 ", attrName='" + attrName + '\'' + 50 '}'; 51 } 52 53 }
兩個類都繼承序列化
1 public class Result implements Serializable{ 2 3 /** 4 * food1 : 0 5 * water : 0 6 * food2 : 106 7 * humidity : 152.42 8 * temprature : 103.65 9 */ 10 11 private int food1; 12 private int water; 13 private int food2; 14 private String humidity; 15 private String temprature; 16 17 public int getFood1() { 18 return food1; 19 } 20 21 public void setFood1(int food1) { 22 this.food1 = food1; 23 } 24 25 public int getWater() { 26 return water; 27 } 28 29 public void setWater(int water) { 30 this.water = water; 31 } 32 49 public String getTemprature() { 50 return temprature; 51 } 52 53 public void setTemprature(String temprature) { 54 this.temprature = temprature; 55 } 56 57 @Override 58 public String toString() { 59 return "Result{" + 60 "food1=" + food1 + 62 ", water='" + water + 63 ", temprature=" + temprature+ '\''+ 64 '}'; 65 } 66 }
然后在獲取到數據的地方進行Gson解析
Gson gson = new Gson(); SensorBean sensorBean = gson.fromJson(data.getString("msg"), SensorBean.class); Result result = sensorBean.getResult(); L.d(TAG, "result.bean = " + result.toString());
這種方法應該是比較費事兒的,不過,沒毛病