我有这个JSON字符串。无法从jsonObject的Getstring
{
"drtest": {
"password":"dr123",
"presence": {
"lastSeen":1485992132269,
"status":"offline"
},
"role":"Doctor",
"speciality":"Physiotherapist",
"token":"f80ve0sY6Ak:APA91bGLPlmy7b_iyqtW9ioG11TOx3xTB9BJgb1vvBK4YRo-28DyXWydg476TvjzaxyNB3kTTMn0BycEDm9UJHAPeoWzV-vFrwN46hg-GKSI6DH1s9zrH8h834c2whEdr12XqWN-4jrs"
},
"patient": {
"password":"pat123",
"presence": {
"lastSeen":1486046501150,
"status":"online"
},
"role":"Patient",
"token":"f80ve0sY6Ak:APA91bGLPlmy7b_iyqtW9ioG11TOx3xTB9BJgb1vvBK4YRo-28DyXWydg476TvjzaxyNB3kTTMn0BycEDm9UJHAPeoWzV-vFrwN46hg-GKSI6DH1s9zrH8h834c2whEdr12XqWN-4jrs"
}
}
首先,我保持医生角色的轨道,但现在我必须跟踪专业。不过,我正在尝试应该工作正确的代码,但它不按预期工作。
正如您所见,只有一个实体具有专业数据,而其他实体不包含专业领域。如何解析专业数据(如果存在)并忽略JSON中是否存在专业领域?
我使用这个代码:
try {
contactList.clear();
JSONObject obj = new JSONObject(s);
Iterator i = obj.keys();
String key = "";
while (i.hasNext()) {
key = i.next().toString();
JSONObject singleUser = (JSONObject) obj.get(key);
String role = singleUser.get("role").toString();
JSONObject singleUser2 = (JSONObject) obj.get(key);
String tpesu= singleUser2.getString("speciality");
// no success here? need help want this value...
Log.e("specialittyyyyyyy",tpesu+"");
JSONObject presence = singleUser.getJSONObject("presence");
String status = presence.getString("status");
if (!key.equals(UserDetails.username)) {
if (role.equals("Doctor")) {
HashMap<String, String> docs = new HashMap<>();
docs.put("name", key);
docs.put("status", status);
Log.e("status ", status + "");
contactList.add(docs);
}
}
totalUsers++;
}
} catch (JSONException e) {
e.printStackTrace();
}
什么发生jsonexception的logcat的检索 – petey