Я довольно новичок в android и java. Я пытаюсь добавить данные JSON в список. У меня есть данные JSON, входящие и печатающие в журнал, но мне трудно получить данные в виде списка. Я пытался и arraylist на номера строк, и он работает, но не знаю, как получить данные JSON. Любые указатели или советы будут рассмотрены.JSON - Справка Преобразование JSONArray в Arraylist и заполнение списка.
Ищу результат Как
(Ключи) ID Имя Tourn_ID (значения) 1 Tournamnet1 MI2016 (значения) 2 Tournamnet2 UT2016 (Values) 3 Tournamnet4 USNC2016 т.д.
Здесь это мой код Java.
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import static android.R.*;
import static android.R.layout.simple_list_item_1;
import static java.util.Arrays.asList;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DownloadTask task = new DownloadTask();
task.execute("http://www.goalballscoreboard.net/mobile/downloads/WebServices/Tournnames/Tournnames.php?rows=all");
ListView tournListView = (ListView) findViewById(R.id.tournListView);
final ArrayList<String> myTournList = new ArrayList<String>(asList("ROW 1", "ROW 2", "Row3"));
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, simple_list_item_1, myTournList);
tournListView.setAdapter(arrayAdapter);
}
public class DownloadTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
String result = "";
URL url;
HttpURLConnection urlConnection = null;
try {
url = new URL(urls[0]);
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
int data = reader.read();
while (data != -1) {
char current = (char) data;
result += current;
data = reader.read();
}
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
try {
JSONObject jsonObject = new JSONObject(result);
String tournInfo = jsonObject.getString("posts");
Log.i("Tourn INFO", tournInfo);
JSONArray arr = new JSONArray(tournInfo);
List<String> list = new ArrayList<String>();
for (int i = 0; i < arr.length(); i++) {
JSONObject jsonPart = arr.getJSONObject(i);
JSONObject jsonObjectPost = jsonPart.getJSONObject("post");
//Log.i("Each Tournament Object", jsonPart.getString("post"));
Log.i("ID", jsonObjectPost.getString("ID"));
Log.i("Name of Tournament", jsonObjectPost.getString("NAME"));
Log.i("TOURN_ID", jsonObjectPost.getString("TOURN_ID"));
String id = jsonObjectPost.get("ID").toString();
String name = jsonObjectPost.get("NAME").toString();
String tournID = jsonObjectPost.get("TOURN_ID").toString();
list.add(jsonObjectPost.getString("ID") + ", " + jsonObjectPost.getString("NAME") + "," + jsonObjectPost.getString("TOURN_ID") + "\n");
}
System.out.println("" + list.toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
сообщение образец JSON вы разбираете и вашего класса адаптера. –
Возможный дубликат [JSON Android ListView] (http: // stackoverflow.ком/вопросы/11318761/JSON-андроид-ListView) –
{ "должности": [ { "пост": { "ID": "74", \t \t "TOURN_ID": "999", \t \t «ГОД ":" 2016" , \t \t "START_DATE": "2016-09-07", \t \t "END_DATE": "2016-09-18", \t \t "DATE_STRING": "7 сентября - 18 2016" , \t \t "NAME": "2016 Паралимпийские игры", \t \t "сокращенным": "2016 Паралимпийские игры", \t \t "TOURN_TYPE": "Международный"}}, \t \t { "пост": { "ID": "73", \t \t "TOURN_ID": "999", \t \t "Год": "2016 » \t \t "START_DATE": "2016-06-23", \t \t "END_DATE": "2016-06-25", \t \t "DATE_STRING": "22 июня - двадцать третий +2016", \t \t «НАЗВАНИЕ»: «2016 USABA National Goalball Championships», \t \t «ShortName»: «2016 граждан США», \t \t «TOURN_TYPE»: «Внутренние»}}, ]} – Tornado973