powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Парсинг JSON ответа
12 сообщений из 12, страница 1 из 1
Парсинг JSON ответа
    #39126760
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Столкнулся с таким интересным (интересно построенным) ответом от сервера в формате JSON (Пример подписки на газету).

Код: xml
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.
{
  "addressData": [
    {
      "id": 2223,
      "name": "Респ Дагестан, г Махачкала",
      "description": "2мик. 434дом",
      "house_number": "",
      "flat_number": "",
      "created_at": "2015-08-21T13:01:13.000Z",
      "updated_at": "2015-08-21T13:01:13.000Z",
      "user_id": 20,
      "changed_user_id": null,
      "city": "Махачкала"
    },
    {
      "id": 2224,
      "name": "Респ Дагестан, г Махачкала",
      "description": "2мик. 597дом",
      "house_number": "",
      "flat_number": "",
      "created_at": "2015-08-21T13:05:51.000Z",
      "updated_at": "2015-08-21T13:05:51.000Z",
      "user_id": 20,
      "changed_user_id": null,
      "city": "Махачкала"
    },
    {
      "id": 2225,
      "name": "Респ Дагестан, г Махачкала",
      "description": "3 микр. дом 648",
      "house_number": "",
      "flat_number": "",
      "created_at": "2015-09-17T17:52:46.000Z",
      "updated_at": "2015-09-17T17:52:46.000Z",
      "user_id": 20,
      "changed_user_id": null,
      "city": "Махачкала"
    } ],
     "newspaperData": [
    {
      "id": 1,
      "name": ""Ас-Салам" на русском",
      "manufacturer_id": 1,
      "created_at": "2015-06-23T16:21:45.000Z",
      "updated_at": "2015-06-23T16:21:45.000Z"
    },
    {
      "id": 2,
      "name": ""Ас-Салам" на аварском",
      "manufacturer_id": 1,
      "created_at": "2015-06-23T16:21:56.000Z",
      "updated_at": "2015-06-23T16:21:56.000Z"
    },
    {
      "id": 3,
      "name": ""Ас-Салам" на лезгинском",
      "manufacturer_id": 1,
      "created_at": "2015-07-11T12:56:50.000Z",
      "updated_at": "2015-07-11T12:56:50.000Z"
    } ],
 "subscriberData": [
    {
      "id": 1111,
      "name": "Гаджи",
      "surname": "Гаджиев",
      "email": "",
      "description": "",
      "user_id": 20,
      "changed_user_id": null,
      "real_status": null,
      "created_at": "2015-08-21T13:01:13.000Z",
      "updated_at": "2015-08-21T13:01:13.000Z",
      "main_phone": "",
      "additional_phone": "",
      "delete_on": null,
      "where_added": "user",
      "added_user_id": null
    },
    {
      "id": 1112,
      "name": "Шамиль",
      "surname": "Ибрагимов",
      "email": "",
      "description": "",
      "user_id": 20,
      "changed_user_id": null,
      "real_status": null,
      "created_at": "2015-08-21T13:05:51.000Z",
      "updated_at": "2015-08-21T13:05:51.000Z",
      "main_phone": "",
      "additional_phone": "",
      "delete_on": null,
      "where_added": "user",
      "added_user_id": null
    },
    {
      "id": 1113,
      "name": "Арсланали",
      "surname": "Исаев",
      "email": "",
      "description": "",
      "user_id": 20,
      "changed_user_id": null,
      "real_status": null,
      "created_at": "2015-09-17T17:52:46.000Z",
      "updated_at": "2015-09-17T17:52:46.000Z",
      "main_phone": "",
      "additional_phone": "",
      "delete_on": null,
      "where_added": "user",
      "added_user_id": null
    } ],
 "subscriptionPeriodData": [
    {
      "id": 3874,
      "period_start": "01.01.2015",
      "period_finish": "31.12.2015",
      "description": "",
      "created_at": "2015-08-21T13:01:13.000Z",
      "updated_at": "2015-12-04T17:17:06.000Z",
      "subscriber_id": 1111,
      "user_id": 20,
      "address_id": 2223,
      "changed_user_id": null,
      "newspaper_id": 1,
      "price_paid": 0,
      "price": 0
    },
    {
      "id": 3875,
      "period_start": "01.07.2015",
      "period_finish": "31.12.2015",
      "description": "",
      "created_at": "2015-08-21T13:05:51.000Z",
      "updated_at": "2015-12-04T17:17:06.000Z",
      "subscriber_id": 1112,
      "user_id": 20,
      "address_id": 2224,
      "changed_user_id": null,
      "newspaper_id": 2,
      "price_paid": 0,
      "price": 0
    },
    {
      "id": 5172,
      "period_start": "01.07.2015",
      "period_finish": "31.12.2015",
      "description": "",
      "created_at": "2015-09-17T17:52:46.000Z",
      "updated_at": "2015-12-04T17:17:09.000Z",
      "subscriber_id": 1113,
      "user_id": 20,
      "address_id": 2225,
      "changed_user_id": null,
      "newspaper_id": 3,
      "price_paid": 0,
      "price": 0
    } ]
}


На подобие связей таблиц между собой по ID.
Нужно получить: ИмяПодписчика, НаименованеГазеты, АдресДоставкиГазеты.
Главная "таблица" с которой все связано - это subscriptionPeriodData.
У кого какие варианты как "связать по ID" и вывести результат?
...
Рейтинг: 0 / 0
Парсинг JSON ответа
    #39128052
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В гугле забанили ?
...
Рейтинг: 0 / 0
Парсинг JSON ответа
    #39128063
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korshun,

Спасибо, я парсил JSON.
Сталкиваюсь с таким JSON впервые.
Если вы заметили то он построен по принципу связей между таблицами по ID.
Из данного JSON-на мне нужно получить примерно такое:
1) addressData: "name": "Респ Дагестан, г Махачкала", "description": "2мик. 434дом",
2) newspaperData: "name": ""Ас-Салам" на русском",
3) subscriberData: "name": "Гаджи", "surname": "Гаджиев"
4) subscriptionPeriodData: "period_start": "01.07.2015", "period_finish": "31.12.2015"
...
Рейтинг: 0 / 0
Парсинг JSON ответа
    #39128080
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Асланали, так а в чем проблема - если парсить уже пробовал. Если не можешь получить "сложный" результат - то парси и пиши в базу данных, затем при помощи select вытянешь все что тебе будет нужно.
...
Рейтинг: 0 / 0
Парсинг JSON ответа
    #39128084
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерский,

Спасибо вам за ответы. Грузить в базу не буду.
Как вам такое решение?
...
Рейтинг: 0 / 0
Парсинг JSON ответа
    #39128186
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал так.
"Топорно"?
Код: 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.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
    static String json = " {\n"
            + " 	\"addressData\": [{\n"
            + " 		\"id\": 2223,\n"
            + " 		\"name\": \"Респ Дагестан, г Махачкала\",\n"
            + " 		\"description\": \"2мик. 434дом\",\n"
            + " 		\"house_number\": \"\",\n"
            + " 		\"flat_number\": \"\",\n"
            + " 		\"created_at\": \"2015-08-21T13:01:13.000Z\",\n"
            + " 		\"updated_at\": \"2015-08-21T13:01:13.000Z\",\n"
            + " 		\"user_id\": 20,\n"
            + " 		\"changed_user_id\": null,\n"
            + " 		\"city\": \"Махачкала\"\n"
            + " 	}, {\n"
            + " 		\"id\": 2224,\n"
            + " 		\"name\": \"Респ Дагестан, г Махачкала\",\n"
            + " 		\"description\": \"2мик. 597дом\",\n"
            + " 		\"house_number\": \"\",\n"
            + " 		\"flat_number\": \"\",\n"
            + " 		\"created_at\": \"2015-08-21T13:05:51.000Z\",\n"
            + " 		\"updated_at\": \"2015-08-21T13:05:51.000Z\",\n"
            + " 		\"user_id\": 20,\n"
            + " 		\"changed_user_id\": null,\n"
            + " 		\"city\": \"Махачкала\"\n"
            + " 	}, {\n"
            + " 		\"id\": 2225,\n"
            + " 		\"name\": \"Респ Дагестан, г Махачкала\",\n"
            + " 		\"description\": \"3 микр. дом 648\",\n"
            + " 		\"house_number\": \"\",\n"
            + " 		\"flat_number\": \"\",\n"
            + " 		\"created_at\": \"2015-09-17T17:52:46.000Z\",\n"
            + " 		\"updated_at\": \"2015-09-17T17:52:46.000Z\",\n"
            + " 		\"user_id\": 20,\n"
            + " 		\"changed_user_id\": null,\n"
            + " 		\"city\": \"Махачкала\"\n"
            + " 	}],\n"
            + " 	\"newspaperData\": [{\n"
            + " 		\"id\": 1,\n"
            + " 		\"name\": \"Ас - Салам на русском\",\n"
            + " 		\"manufacturer_id\": 1,\n"
            + " 		\"created_at\": \"2015-06-23T16:21:45.000Z\",\n"
            + " 		\"updated_at\": \"2015-06-23T16:21:45.000Z\"\n"
            + " 	}, {\n"
            + " 		\"id\": 2,\n"
            + " 		\"name\": \"Ас - Салам на аварском\",\n"
            + " 		\"manufacturer_id\": 1,\n"
            + " 		\"created_at\": \"2015-06-23T16:21:56.000Z\",\n"
            + " 		\"updated_at\": \"2015-06-23T16:21:56.000Z\"\n"
            + " 	}, {\n"
            + " 		\"id\": 3,\n"
            + " 		\"name\": \"Ас - Салам на лезгинском\",\n"
            + " 		\"manufacturer_id\": 1,\n"
            + " 		\"created_at\": \"2015-07-11T12:56:50.000Z\",\n"
            + " 		\"updated_at\": \"2015-07-11T12:56:50.000Z\"\n"
            + " 	}],\n"
            + " 	\"subscriberData\": [{\n"
            + " 		\"id\": 1111,\n"
            + " 		\"name\": \"Гаджи\",\n"
            + " 		\"surname\": \"Гаджиев\",\n"
            + " 		\"email\": \"\",\n"
            + " 		\"description\": \"\",\n"
            + " 		\"user_id\": 20,\n"
            + " 		\"changed_user_id\": null,\n"
            + " 		\"real_status\": null,\n"
            + " 		\"created_at\": \"2015-08-21T13:01:13.000Z\",\n"
            + " 		\"updated_at\": \"2015-08-21T13:01:13.000Z\",\n"
            + " 		\"main_phone\": \"\",\n"
            + " 		\"additional_phone\": \"\",\n"
            + " 		\"delete_on\": null,\n"
            + " 		\"where_added\": \"user\",\n"
            + " 		\"added_user_id\": null\n"
            + " 	}, {\n"
            + " 		\"id\": 1112,\n"
            + " 		\"name\": \"Шамиль\",\n"
            + " 		\"surname\": \"Ибрагимов\",\n"
            + " 		\"email\": \"\",\n"
            + " 		\"description\": \"\",\n"
            + " 		\"user_id\": 20,\n"
            + " 		\"changed_user_id\": null,\n"
            + " 		\"real_status\": null,\n"
            + " 		\"created_at\": \"2015-08-21T13:05:51.000Z\",\n"
            + " 		\"updated_at\": \"2015-08-21T13:05:51.000Z\",\n"
            + " 		\"main_phone\": \"\",\n"
            + " 		\"additional_phone\": \"\",\n"
            + " 		\"delete_on\": null,\n"
            + " 		\"where_added\": \"user\",\n"
            + " 		\"added_user_id\": null\n"
            + " 	}, {\n"
            + " 		\"id\": 1113,\n"
            + " 		\"name\": \"Арсланали\",\n"
            + " 		\"surname\": \"Исаев\",\n"
            + " 		\"email\": \"\",\n"
            + " 		\"description\": \"\",\n"
            + " 		\"user_id\": 20,\n"
            + " 		\"changed_user_id\": null,\n"
            + " 		\"real_status\": null,\n"
            + " 		\"created_at\": \"2015-09-17T17:52:46.000Z\",\n"
            + " 		\"updated_at\": \"2015-09-17T17:52:46.000Z\",\n"
            + " 		\"main_phone\": \"\",\n"
            + " 		\"additional_phone\": \"\",\n"
            + " 		\"delete_on\": null,\n"
            + " 		\"where_added\": \"user\",\n"
            + " 		\"added_user_id\": null\n"
            + " 	}],\n"
            + " 	\"subscriptionPeriodData\": [{\n"
            + " 		\"id\": 3874,\n"
            + " 		\"period_start\": \"01.01.2015\",\n"
            + " 		\"period_finish\": \"31.12.2015\",\n"
            + " 		\"description\": \"\",\n"
            + " 		\"created_at\": \"2015-08-21T13:01:13.000Z\",\n"
            + " 		\"updated_at\": \"2015-12-04T17:17:06.000Z\",\n"
            + " 		\"subscriber_id\": 1111,\n"
            + " 		\"user_id\": 20,\n"
            + " 		\"address_id\": 2223,\n"
            + " 		\"changed_user_id\": null,\n"
            + " 		\"newspaper_id\": 1,\n"
            + " 		\"price_paid\": 0,\n"
            + " 		\"price\": 0\n"
            + " 	}, {\n"
            + " 		\"id\": 3875,\n"
            + " 		\"period_start\": \"01.07.2015\",\n"
            + " 		\"period_finish\": \"31.12.2015\",\n"
            + " 		\"description\": \"\",\n"
            + " 		\"created_at\": \"2015-08-21T13:05:51.000Z\",\n"
            + " 		\"updated_at\": \"2015-12-04T17:17:06.000Z\",\n"
            + " 		\"subscriber_id\": 1112,\n"
            + " 		\"user_id\": 20,\n"
            + " 		\"address_id\": 2224,\n"
            + " 		\"changed_user_id\": null,\n"
            + " 		\"newspaper_id\": 2,\n"
            + " 		\"price_paid\": 0,\n"
            + " 		\"price\": 0\n"
            + " 	}, {\n"
            + " 		\"id\": 5172,\n"
            + " 		\"period_start\": \"01.07.2015\",\n"
            + " 		\"period_finish\": \"31.12.2015\",\n"
            + " 		\"description\": \"\",\n"
            + " 		\"created_at\": \"2015-09-17T17:52:46.000Z\",\n"
            + " 		\"updated_at\": \"2015-12-04T17:17:09.000Z\",\n"
            + " 		\"subscriber_id\": 1113,\n"
            + " 		\"user_id\": 20,\n"
            + " 		\"address_id\": 2225,\n"
            + " 		\"changed_user_id\": null,\n"
            + " 		\"newspaper_id\": 3,\n"
            + " 		\"price_paid\": 0,\n"
            + " 		\"price\": 0\n"
            + " 	}]\n"
            + " }";

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        String str = null;
        String ddd = null;
        String ddd1 = null;

        JsonParser parser = new JsonParser();
        JsonObject mainObject = parser.parse(json).getAsJsonObject();

        JsonArray JsubscriptionPeriodData = mainObject.getAsJsonArray("subscriptionPeriodData");
        JsonArray JsubscriberData = mainObject.getAsJsonArray("subscriberData");

        for (JsonElement user : JsubscriptionPeriodData) {

            JsonObject userObject = user.getAsJsonObject();
            str = userObject.get("subscriber_id").toString();
            //userObject.get("name");
            for (JsonElement userData : JsubscriberData) {

                JsonObject userObject1 = userData.getAsJsonObject();

                ddd = userObject1.get("id").toString();

                ddd1 = userObject1.get("name").toString()
                        + userObject1.get("surname").toString();

                if (str.equals(ddd)) {
                    System.out.println(ddd1 + str);
                }
            }

            //+" " + ddd; //+ " " + userObject.get("name").toString();
        }
    }
...
Рейтинг: 0 / 0
Парсинг JSON ответа
    #39128187
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вывод такой:
Код: powershell
1.
2.
3.
4.
run:
"Гаджи""Гаджиев"1111
"Шамиль""Ибрагимов"1112
"Арсланали""Исаев"1113
...
Рейтинг: 0 / 0
Парсинг JSON ответа
    #39128214
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это для себя? Откуда желание избежать базы данных (благо она встроенная в ОС)?
...
Рейтинг: 0 / 0
Парсинг JSON ответа
    #39128217
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,
Вы правы я стал подумывать об этом.
Загнать нужные данные в базу SQLite и вытаскивать от туда.
...
Рейтинг: 0 / 0
Парсинг JSON ответа
    #39128218
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думал может обойдется простым парсингом JSON не хотел прибегать к SQLite.
...
Рейтинг: 0 / 0
Парсинг JSON ответа
    #39128228
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АсланалиДумал может обойдется простым парсингом JSON не хотел прибегать к SQLite.
Как раз с sql обработка будет проще в большинстве случаев.
...
Рейтинг: 0 / 0
Парсинг JSON ответа
    #39128262
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,
понял вас, буду пробовать.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Парсинг JSON ответа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]