我现在有一个字符串是这样:
{ "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());
这种方法应该是比较费事儿的,不过,没毛病