Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
талраш
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 33
1

Парсинг Json

06.10.2016, 08:30. Просмотров 454. Ответов 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;
        }
    }
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2016, 08:30
Ответы с готовыми решениями:

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

Парсинг JSON
Дали задание Мне надо воссоздать структуру JSON в сообственных объектах. Т.е....

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

Парсинг json
Здравствуйте! Имеется такой json код: { &quot;data&quot;: }И я его обрабатываю так:...

Парсинг JSON
Доброй ночи! Есть задача распарсить JSON не зная изначально сколько и чего там...

4
vxg
Модератор
3265 / 2063 / 325
Регистрация: 13.01.2012
Сообщений: 8,003
06.10.2016, 12:55 2
талраш, засуньте, передайте. вопрос в чем?
0
талраш
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 33
06.10.2016, 14:04  [ТС] 3
????А непонятно чтоли?????написано же как его оттуда закинуть в ArrayList или куда нибудь чтобы потом использовать в адаптере для заполнения gridView!!!
0
Pablito
2767 / 2198 / 744
Регистрация: 12.05.2014
Сообщений: 7,718
Завершенные тесты: 1
06.10.2016, 14:56 4
если хочется передавать целый ArrayList между активити значит что-то не то с архитектурой приложения
0
vxg
Модератор
3265 / 2063 / 325
Регистрация: 13.01.2012
Сообщений: 8,003
06.10.2016, 17:25 5
талраш, когда таска заканчивается она может отдать в активити то что вам нужно. Послать дальше можно как на душу ляжет - хоть через экстру хоть через статику
0
06.10.2016, 17:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2016, 17:25

Не выходит парсинг Json
@Override protected void onPostExecute(String strJson) { ...

Парсинг JSON объекта
Здравствуйте, программисты! Помогите, пожалуйста, с решением задачи: Есть...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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