Я прочитал и перепробовал множество примеров работы над стеком, прежде чем спрашивать, но пока не повезло.Я пытаюсь разобрать массив json, который я возвращаю из php / mysql для использования в Android.Мой код работает до такой степени, что я могу преобразовать JSON в строку, которая выглядит после преобразования:
[{"username":"lawn edge","distance":"0.00766418723166294"},{"username":"bbq","distance":"0.00876051437108357"},{"username":"Tablet","distance":"0.0140815866739065"}]
Я пытаюсь извлечь только «имя пользователя» и отправить их в текстовое представление,В большинстве примеров, которые я пробовал, просто создается пустое текстовое представление или выводится вся строка json, как показано выше.Наиболее близким, что я получил, является использование кода ниже:
private void returnJson() {
// TODO Auto-generated method stub
try {
httpPostproximity = new HttpPost(
"http://vtolblog.com/finddistance.php");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
nameValuePairs.add(new BasicNameValuePair("lat", lat));
nameValuePairs.add(new BasicNameValuePair("lng", lng));
nameValuePairs.add(new BasicNameValuePair("username", check));
httpPostproximity
.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httpPostproximity);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
playerlist.setText("error3");
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\r\n");
}
is.close();
result = sb.toString();
result.trim();
} catch (Exception e) {
playerlist.setText("error2");
}
try {
JSONObject json_data = new JSONObject(result);
JSONArray jArreglo = new JSONArray(result);
for (int i = 0; i < jArreglo.length(); i++) {
json_data = jArreglo.getJSONObject(i);
Log.i("log_tag", "Player: " + json_data.getString("username"));
// Get an output to the screen
jsonplayers += "\n\t" + jArreglo.getJSONObject(i);
}
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
playerlist.setText("Error parsing json");
}
playerlist.setText(jsonplayers);
return;
// end of returnJson()
}
Если я изменю playerlist.setText (result);он будет отображать вышеупомянутый массив json, так что я предполагаю, что код в порядке до этого момента?Я далеко?Если вам нужно что-то еще, чтобы помочь мне, пожалуйста, дайте мне знать и спасибо заранее!