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

Как правильно распарсить Json? - Android

Восстановить пароль Регистрация
 
element111
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 54
09.02.2016, 22:26     Как правильно распарсить Json? #1
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
protected String doInBackground(String... args) {
        // Будет хранить параметры
        List<NameValuePair> params = new ArrayList<>();
                // получаем JSON строк с URL
        JSONObject json = jParser.makeHttpRequest("тут ссылка на сайт", "GET", params);
 
 
 
        try {
 
                // Получаем масив из Продуктов
                dolzno = json.getJSONArray("dolzno");
 
 
                // перебор всех продуктов
                for (int i = 0; i < dolzno.length(); i++) {
                    JSONObject c = dolzno.getJSONObject(i);
 
                    // Сохраняем каждый json елемент в переменную
                    String id = c.getString(TAG_ID);
 
 
                    // Создаем новый HashMap
                    HashMap<String, String> map = new HashMap<String, String>();
 
                    // добавляем каждый елемент в HashMap ключ => значение
                    map.put(TAG_ID, id);
 
 
                    // добавляем HashList в ArrayList
                    productsList.add(map);
                }
 
 
 
        } catch (JSONException e) {
            e.printStackTrace();
        }
 
        return null;
    }
Сам json-ответ корректен вроде:
JSON
1
{"dolzno":[{"_id":"1"},{"_id":"2"},{"_id":"4"}],"spec":[{"_id":"1"},{"_id":"2"},{"_id":"3"}],"otdel":[{"_id":"1"},{"_id":"2"},{"_id":"3"}]}
Он получается с url.

Насколько я понимаю, он содержит 3 объекта - dolzno, otdel, spec. Вот я и хочу каждый из этих обьектов запихать в arraylist. Однако программа почему-то не видит эти обьекты. (Ввожу их по названию, в примере dolzno - название первого обьекта)

После преобразования я планировал arraylist привязать к спиннеру.
В чем ошибаюсь?

Добавлено через 32 минуты
Ниже код php
PHP
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
<?php
$res = array();
$response = array();
$response1 = array();
$response2 = array();
 
// include db connect class
require_once __DIR__ . '/db_connect.php';
 
// connecting to db
$db = new DB_CONNECT();
 
// get all products from products table
$result = mysql_query("SELECT * FROM dolz");
$result1 = mysql_query("SELECT * FROM otdel");
$result2 = mysql_query("SELECT * FROM spec");
 
if (mysql_num_rows($result) > 0 and mysql_num_rows($result1) > 0) {
$response["dolzno"] = array();
$response1["otdel"] = array();
$response2["spec"] = array();
 
while ($row = mysql_fetch_array($result)) {
$product = array();
$product["_id"] = $row["_id"];
 
array_push($response["dolzno"], $product);
$res=array_merge((array)$res, (array)$response);
}
while ($row = mysql_fetch_array($result2)) {
$product2 = array();
$product2["_id"] = $row["_id"];
 
array_push($response2["spec"], $product2);
$res=array_merge((array)$res, (array)$response2);
}
while ($row = mysql_fetch_array($result1)) {
$product1 = array();
$product1["_id"] = $row["_id"];
 
array_push($response1["otdel"], $product1);
$res=array_merge((array)$res, (array)$response1);
}
 
echo json_encode($res);
 
} else {
$response1["success"] = 0;
$response1["message"] = "No products found";
 
echo json_encode($response1);
}
 
?>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2016, 22:26     Как правильно распарсить Json?
Посмотрите здесь:

Как перевести с gson на json код Android
Android Как распарсить JSON c Вконтакте API
Android GET HTTP запросы. Как распарсить строку, получив все значения, разделенные запятыми
Android Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject
Android Подскажите как правильно распарсить json
Как распарсить страницу и записать данные в ListView? Android
Как распарсить Json-ответ Android приложении? Android
Android Как правильно парсить json с сервера
Android Как встретить JSON из Android на сервере с PHP?
Как отправить данные json через HttpURLConnection Android
Как расшифровать русский текст из Json-файла? Android
Как распарсить такой JSON Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
10.02.2016, 12:06     Как правильно распарсить Json? #2
element111, а какая ошибка?
Паблито
не спать!
1876 / 1610 / 497
Регистрация: 12.05.2014
Сообщений: 5,819
Завершенные тесты: 1
10.02.2016, 12:16     Как правильно распарсить Json? #3
Java
1
2
3
                String str = "{"dolzno":[{"_id":"1"},{"_id":"2"},{"_id":"4"}],"spec":[{"_id":"1"},{"_id":"2"},{"_id":"3"}],"otdel":[{"_id":"1"},{"_id":"2"},{"_id":"3"}]}";
                Gson gson = new Gson();
                MyResponse response = gson.fromJson(str, MyResponse.class);
парсится с помощью библиотеки gson
подключается так
XML
1
compile 'com.google.code.gson:gson:1.7.2'
сам класс MyResponse
Кликните здесь для просмотра всего текста
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
public class MyResponse {
    private Spec[] spec;
    private Dolzno[] dolzno;
    private Otdel[] otdel;
 
    public Spec[] getSpec() {
        return spec;
    }
 
    public void setSpec(Spec[] spec) {
        this.spec = spec;
    }
 
    public Dolzno[] getDolzno() {
        return dolzno;
    }
 
    public void setDolzno(Dolzno[] dolzno) {
        this.dolzno = dolzno;
    }
 
    public Otdel[] getOtdel() {
        return otdel;
    }
 
    public void setOtdel(Otdel[] otdel) {
        this.otdel = otdel;
    }
 
    static class Otdel {
        private String _id;
 
        public String get_id() {
            return _id;
        }
 
        public void set_id(String _id) {
            this._id = _id;
        }
    }
 
    static class Spec {
        private String _id;
 
        public String get_id() {
            return _id;
        }
 
        public void set_id(String _id) {
            this._id = _id;
        }
    }
 
    static class Dolzno {
        private String _id;
 
        public String get_id() {
            return _id;
        }
 
        public void set_id(String _id) {
            this._id = _id;
        }
    }
}
Yandex
Объявления
10.02.2016, 12:16     Как правильно распарсить Json?
Ответ Создать тему

Метки
android, json
Опции темы

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