【发布时间】:2016-07-04 18:50:40
【问题描述】:
我能够得到 json 响应
但我不知道如何在响应中获取数据以及如何获取特定字段并填充数组列表
-
我所做的是:
protected String doInBackground(String... args) { fruit = preferenceHelper.getWalkerfruit(); flower = preferenceHelper.getWalkerflower(); try { // Building Parameters params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("fruit", lfruit)); params.add(new BasicNameValuePair("flower", flower)); Log.d("Parameters", params.toString()); Log.d("request!", "starting"); // getting user details by making HTTP request JSONObject json = jsonParser.makeHttpRequest(FLOWER_SERVICE, "POST", params); // check your log for json response Log.d("attempt", json.toString()); JSONObject jsonObject = userData.getJSONObject(0); JSONArray jsonArray = jsonObject.getJSONArray("Data"); String success = json.optString("status"); String msgd = json.getString("message"); String str_value = json.getString("id"); Log.d("id", str_value); arraylist1 = new ArrayList<HashMap<String, String>>(); for (int i = 0; i < jsonArray.length(); i++) { HashMap<String, String> map = new HashMap<String, String>(); JSONObject obj = jsonArray.getJSONObject(i); Log.d("oasdasdbj", obj.toString()); String str_value = obj.getString("id"); Log.d("alert_idasdas", str_value); id = obj.getString(Constants.Params.ID); map.put("id", str_value); Log.d("map", map.toString()); arraylist1.add(map); } Log.d("response", " " + msgd); if (success.equals("false")) { Log.d("Failure!", json.toString()); finish(); return json.getString(TAG_MESSAGE); } else if (success.equals("true")) { Log.d("Successful!", json.toString()); } } catch (JSONException e) { e.printStackTrace(); } return null; }
Json 响应:
{"status":true,"message":"Successfully","Data":[{"id":"92","name":"","abcd":"dfgfddg","adfffwe":"asdsad"}]}
【问题讨论】:
-
你想用这个响应做什么简要告诉我
-
你的response是保存在'{}'里面对的,是一个json对象,你需要读取Data,它是一个json数组。你可以像 jsonObject.getJsonArray("Data");并将其存储在 jsonArray 变量中,然后进行相应处理。检查tutorialspoint.com/android/android_json_parser.htm
-
我想要来自 json 响应的 id
标签: android json web-services parsing arraylist