Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
талраш
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 33
#1

Парсинг Json - Android

06.10.2016, 08:30. Просмотров 202. Ответов 4
Метки нет (Все метки)

Здравствуйте подcкажите как сделать: нужно данные из Json засунуть в массив, чтобы его дальше передавать по активностям. Json парсится в Parse Task.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.DialogFragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.TextView;
 
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
 
 
public class MainActivity extends Activity {
 
    public static String LOG_TAG = "my_log";
    public static final String BASE_URL = "http://medkey2.youweb.su/";
    public static final String ARTICLE_URL= "api/index.php?type=catalog";
    private static final List<DataO> dataOrder = new ArrayList<DataO>();
 
    static {
        dataOrder.add(new DataO("Test", "10000"));
        dataOrder.add(new DataO("test 2", "15000"));
        dataOrder.add(new DataO("Test 3", "25000"));
        dataOrder.add(new DataO("Услуга", "12999"));
        dataOrder.add(new DataO("Рыба услуга", "39999"));
        dataOrder.add(new DataO("Просто услуга", "28500"));
    }
    private static class DataO {
        public final String name;
        public final String price;
 
        public DataO(String name, String price) {
            this.name = name;
            this.price = price;
        }
    }
 
    GridView gvMain;
    DialogFragment modal;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new ParseTask().execute();
        modal= new Dialog1();
 
        ArrayAdapter<DataO> adapter = new DataAdapter(this);
        gvMain = (GridView) findViewById(R.id.gridView1);
        gvMain.setAdapter(adapter);
        gvMain.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 
            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                                    int position, long id) {
                // TODO Auto-generated method stub
                modal.show(getFragmentManager(), "Dialog1");
            }
        });
    }
    private void adjustGridView() {
    }
    private class ParseTask extends AsyncTask<Void, Void, String> {
 
        HttpURLConnection urlConnection = null;
        BufferedReader reader = null;
        String resultJson = "";
 
        @Override
        protected String doInBackground(Void... params) {
            // получаем данные с внешнего ресурса
            try {
                URL url = new URL(BASE_URL+"api/index.php?type=catalog");
 
                urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("GET");
                urlConnection.connect();
 
                InputStream inputStream = urlConnection.getInputStream();
                StringBuffer buffer = new StringBuffer();
 
                reader = new BufferedReader(new InputStreamReader(inputStream));
 
                String line;
                while ((line = reader.readLine()) != null) {
                    buffer.append(line);
                }
 
                resultJson = buffer.toString();
 
            } catch (Exception e) {
                e.printStackTrace();
            }
            return resultJson;
        }
 
        @Override
        protected void onPostExecute(String strJson) {
            super.onPostExecute(strJson);
            // выводим целиком полученную json-строку
 
            JSONObject dataJsonObj = null;
 
 
            try {
                dataJsonObj = new JSONObject(strJson);
                JSONArray events = dataJsonObj.getJSONArray("events");
                for (int i = 0; i < events.length(); i++) {
                    JSONObject info = events.getJSONObject(i);
 
                    String name = info.getString("name");
                    String price = info.getString("price");
                    String id = info.getString("id");
                    String description = info.getString("description");
                    String picture = info.getString("picture");
                    DataO dataJson = new DataO(name, price);
 
 
                }
 
            } catch (JSONException e) {
                e.printStackTrace();
            }
 
        }
    }
 
    public void next(View view) {
        /*Intent intent = new Intent(Order.this, basket.class);
        startActivity(intent);
        finish();*/
    }
 
    public void onClick(View v) {
        modal.show(getFragmentManager(), "Dialog1");
    }
 
    private class DataAdapter extends ArrayAdapter<DataO> {
 
        public DataAdapter(Context context) {
            super(context,R.layout.grid_item, (List<DataO>) dataOrder);
        }
 
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            DataO data = getItem(position);
 
            if (convertView == null) {
                convertView = LayoutInflater.from(getContext())
                        .inflate(R.layout.grid_item, null);
            }
            ((TextView) convertView.findViewById(R.id.label))
                    .setText(data.name);
            ((TextView) convertView.findViewById(R.id.price))
                    .setText(data.price);
            return convertView;
        }
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2016, 08:30     Парсинг Json
Посмотрите здесь:

Android Парсинг JSON'а
Android Парсинг большого объема JSON данных
Android Парсинг json, многомерный массив с разными типами данных
Android Парсинг JSON-файла
Json http парсинг. Массивы Android
Android Осуществить парсинг JSON с помощью готового макета "VKApiMessage"
Парсинг JSON ответа от сервера Android
Парсинг JSON-строки и вывод данных из строки Android
Android JSON
Android Парсинг json
Android Парсинг JSON
Парсинг JSON объекта Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3021 / 1823 / 189
Регистрация: 13.01.2012
Сообщений: 6,915
06.10.2016, 12:55     Парсинг Json #2
талраш, засуньте, передайте. вопрос в чем?
талраш
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 33
06.10.2016, 14:04  [ТС]     Парсинг Json #3
????А непонятно чтоли?????написано же как его оттуда закинуть в ArrayList или куда нибудь чтобы потом использовать в адаптере для заполнения gridView!!!
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,219
Завершенные тесты: 1
06.10.2016, 14:56     Парсинг Json #4
если хочется передавать целый ArrayList между активити значит что-то не то с архитектурой приложения
vxg
Модератор
3021 / 1823 / 189
Регистрация: 13.01.2012
Сообщений: 6,915
06.10.2016, 17:25     Парсинг Json #5
талраш, когда таска заканчивается она может отдать в активити то что вам нужно. Послать дальше можно как на душу ляжет - хоть через экстру хоть через статику
Yandex
Объявления
06.10.2016, 17:25     Парсинг Json
Ответ Создать тему
Опции темы

Текущее время: 14:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru