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

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

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

Парсинг Json - Программирование Android

06.10.2016, 08:30. Просмотров 268. Ответов 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
Посмотрите здесь:

Парсинг JSON - Программирование Android
Доброй ночи! Есть задача распарсить JSON не зная изначально сколько и чего там находится, а так же не зная ни имен ни другой инфы, кроме...

Парсинг JSON - Программирование Android
Дали задание Мне надо воссоздать структуру JSON в сообственных объектах. Т.е. парсить надо не в String (например), а сделать вот что: -...

Парсинг JSON'а - Программирование Android
Здравствуйте! Недавно я на php+msql и Eclipse пробовал этот пример с сайта...

Парсинг JSON - Программирование Android
Привет знатокам своего дела, у меня уже крик души! Какой час не выходит распарсить такой JSON ...

Парсинг json - Программирование Android
Здравствуйте! Имеется такой json код: { &quot;data&quot;: }И я его обрабатываю так: JSONArray urls = json.getJSONArray(&quot;data&quot;); Тогда, как мне...

Парсинг JSON-файла - Программирование Android
Есть файл со следующим содержимым: т.е. только со значениями! Как его распарсить?? Этот способ не работает: void...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3144 / 1946 / 214
Регистрация: 13.01.2012
Сообщений: 7,437
06.10.2016, 12:55     Парсинг Json #2
талраш, засуньте, передайте. вопрос в чем?
талраш
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 33
06.10.2016, 14:04  [ТС]     Парсинг Json #3
????А непонятно чтоли?????написано же как его оттуда закинуть в ArrayList или куда нибудь чтобы потом использовать в адаптере для заполнения gridView!!!
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
06.10.2016, 14:56     Парсинг Json #4
если хочется передавать целый ArrayList между активити значит что-то не то с архитектурой приложения
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2016, 17:25     Парсинг Json
Еще ссылки по теме:

Парсинг JSON объекта - Программирование Android
Здравствуйте, программисты! Помогите, пожалуйста, с решением задачи: Есть json-объект такого вида: {&quot;map&quot;: {&quot;firstname&quot;: null,...

Парсинг JSON ответа от сервера - Программирование Android
Здравствуйте друзья, давно не заходил к вам в гости. Столкнулся с таким интересным (интересно построенным) ответом от сервера в формате...

Json http парсинг. Массивы - Программирование Android
Здравствуйте. Нужно спарсить json данные. Есть php файл, который генерирует json код: http://silicon-valley-rus.com/server/get_json.php ...

Парсинг большого объема JSON данных - Программирование Android
Столкнулся со следующей проблемой. С сервера приходит большой объем JSON данных (несколько мб), и когда я пытаюсь преобразовать полученные...

Парсинг json, многомерный массив с разными типами данных - Программирование Android
Сервер отдает массив вида: $arr $arr Если делать так: JSONObject jObj = new JSONObject(outOfServer); jObj.getJSONObject(0); То...

Осуществить парсинг JSON с помощью готового макета "VKApiMessage" - Программирование Android
Я никак не могу осуществить парсинг JSON с помощью готового макета &quot;VKApiMessage&quot;. Пример JSON: https://vk.com/dev/messages.getDialogs...


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

Или воспользуйтесь поиском по форуму:
vxg
Модератор
3144 / 1946 / 214
Регистрация: 13.01.2012
Сообщений: 7,437
06.10.2016, 17:25     Парсинг Json #5
талраш, когда таска заканчивается она может отдать в активити то что вам нужно. Послать дальше можно как на душу ляжет - хоть через экстру хоть через статику
Yandex
Объявления
06.10.2016, 17:25     Парсинг Json
Ответ Создать тему
Опции темы

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