解决方案
我们的想法是尽量让“音符”字段(从“注意事项“ 的JSONObject )的 JSONArray 第一,如果它抛出异常,这将意味着有没有“注意” JSONArray 到“音符” 的JSONObject ,这将意味着“音符”是的JSONObject 。我们可以计算出状况时,注字段是用同样的方法字符串。
尝试{ //字符串jsonString =“{\”注意事项\“:{\”注\“:[{\”内容\“:\”有删除智齿\“,\”的\“:\”员工\“} {\“内容\”:\“快点好起来\”,\“的\”:\“管理者\”}]}}“; //字符串jsonString =“{\”注意事项\“:{\”注\“:{\”内容\“:\”这是一个测试记\“,\”的\“:\”员工\“} }}“; 字符串jsonString =“{\”注意事项\“:{\”注\“:\”\“}}”; 的JSONObject的JSONObject =新的JSONObject(jsonString); JSONObject的jsonObjectNotes = jsonObject.getJSONObject(“票据”); 尝试{ JSONArray jsonArrayNote = jsonObjectNotes.getJSONArray(“说明”); 的for(int i = 0; I< jsonArrayNote.length();我++){ 的JSONObject jsonObject2 = jsonArrayNote.getJSONObject(ⅰ); 字符串的StringContent = jsonObject2.getString(“内容”); 字符串stringFrom = jsonObject2.getString(“从”); Log.e(的getClass()的getName(),“内容=”+的StringContent +“;从=”+ stringFrom); } } 赶上(JSONException E){ //这意味着jsonObjectNotes没有jsonArray名为“注意事项”和“注意事项”是的JSONObject 尝试{ JSONObject的jsonObject3 = jsonObjectNotes.getJSONObject(“说明”); 字符串的StringContent =(字符串)jsonObject3.get(“内容”); 字符串stringFrom =(字符串)jsonObject3.get(“从”); Log.e(的getClass()的getName(),“内容=”+的StringContent +“;从=”+ stringFrom); } 赶上(JSONException前){ //这意味着jsonObjectNotes没有JSONObject的名称为“注意事项”和“注意事项”为空字符串 字符串stringNote = jsonObjectNotes.getString(“说明”); Log.e(的getClass()的getName(),“需要注意的是字符串=”+ stringNote); } } }赶上(JSONException E){ e.printStackTrace(); }在我的例子code另一个 GET 的操作也会抛出jsonExceptions但我认为你的想法。
本文地址:IT屋 » 如何反序列化的JSON / GSON这可能是一个字符串,对象或列表