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

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

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

Парсинг JSON-строки и вывод данных из строки - Программирование Android

17.12.2015, 20:17. Просмотров 585. Ответов 7
Метки нет (Все метки)

Добрый день!
Я разрабатываю Android-клиент, который мог бы обмениваться данными с размещенной WCf-службой.
Для чтения данных из службы в клиенте, я конвертирую данные из службы в json-строку, как эта:
JSON
1
{"firstName":"Markoff","lastName":"Chaney","dateOfBirth":{"year":1901,"month":4,"day":30}}
В клиенте я пытаюсь парсить эту строку, но у меня выскакивает ошибка.
Вот код парсинга, и получения данных из JSON-строки:
Java
1
2
3
4
5
6
7
8
9
10
JSONObject json=null;
        String str = "{"firstName":"Markoff","lastName":"Chaney","dateOfBirth":{"year":1901,"month":4,"day":30}}";
        try {
            json = new JSONObject(str);
            String module = json.getJSONObject("0").getString("firstName");
            EditText edt=(EditText)findViewById(R.id.editText);
            edt.setText(module);
        } catch (JSONException e) {
            e.printStackTrace();
        }
Как исправить данную ошибку, чтобы данные из строки можно было извлекать и затем отображать в элементах формы приложения?
Миниатюры
Парсинг JSON-строки и вывод данных из строки  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2015, 20:17     Парсинг JSON-строки и вывод данных из строки
Посмотрите здесь:
Android Парсинг большого объема JSON данных
Android Парсинг json, многомерный массив с разными типами данных
Парсинг строки Android
Парсинг строки Android
Парсинг строки ввода Android
Парсинг Json Android
Парсинг JSON Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2410 / 1855 / 581
Регистрация: 12.05.2014
Сообщений: 6,591
Завершенные тесты: 1
17.12.2015, 20:27     Парсинг JSON-строки и вывод данных из строки #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Java
1
            String module = json.getString("firstName");
к чему там getJSONObject("0") - непонятно
lord_commander
0 / 0 / 0
Регистрация: 20.05.2014
Сообщений: 137
17.12.2015, 20:47  [ТС]     Парсинг JSON-строки и вывод данных из строки #3
Благодарю!) Не разобрался в парсинге еще, вот и ересь пишется пока что)
Pablito
2410 / 1855 / 581
Регистрация: 12.05.2014
Сообщений: 6,591
Завершенные тесты: 1
17.12.2015, 20:55     Парсинг JSON-строки и вывод данных из строки #4
вообще можно сделать проще
1. создаем класс, в который будем перегонять эту строку с json, например Person
Кликните здесь для просмотра всего текста
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
class Person {
 
    private String firstName;
    private String lastName;
    private DateOfBirth dateOfBirth;
 
    public String getFirstName() {
        return firstName;
    }
 
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
 
    public String getLastName() {
        return lastName;
    }
 
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
 
    public DateOfBirth getDateOfBirth() {
        return dateOfBirth;
    }
 
    public void setDateOfBirth(DateOfBirth dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }
 
    static class DateOfBirth {
 
        private int year;
        private int month;
        private int day;
 
        public int getYear() {
            return year;
        }
 
        public void setYear(int year) {
            this.year = year;
        }
 
        public int getMonth() {
            return month;
        }
 
        public void setMonth(int month) {
            this.month = month;
        }
 
        public int getDay() {
            return day;
        }
 
        public void setDay(int day) {
            this.day = day;
        }
    }
}

2. подключаем в build.gradle библиотечку
XML
1
compile 'com.google.code.gson:gson:1.7.2'
и пишем что-то типа
Java
1
2
3
4
        String str = "{"firstName":"Markoff","lastName":"Chaney","dateOfBirth":{"year":1901,"month":4,"day":30}}";
        Gson gson = new Gson();
        Person person = gson.fromJson(str, Person.class);
        Log.i(TAG, "module: " + person.getDateOfBirth().getMonth());
так как дата рождения прилетает частями придется наверное дописать метод который будет возвращать дату в нужном виде
lord_commander
0 / 0 / 0
Регистрация: 20.05.2014
Сообщений: 137
18.12.2015, 04:38  [ТС]     Парсинг JSON-строки и вывод данных из строки #5
А если строка больше, и она содержит не один элемент, а больше?
JSON
1
2
"{"firstName":"Markoff","lastName":"Chaney","dateOfBirth":{"year":1901,"month":4,"day":30}},
"{"firstName":"Martin","lastName":"Lutor","dateOfBirth":{"year":1956,"month":6,"day":15}}""
Можно ли сделать цикл, который бы забивал все части строки в массив, который потом использовать в клиенте?

И для чего нужен Log? Он как-то влияет на парсинг?
Pablito
2410 / 1855 / 581
Регистрация: 12.05.2014
Сообщений: 6,591
Завершенные тесты: 1
18.12.2015, 15:43     Парсинг JSON-строки и вывод данных из строки #6
Цитата Сообщение от lord_commander Посмотреть сообщение
А если строка больше, и она содержит не один элемент, а больше?
вот именно в таком виде она и приходит или просто скопировал пару объектов наугад?
Цитата Сообщение от lord_commander Посмотреть сообщение
И для чего нужен Log? Он как-то влияет на парсинг?
это вывод в консоль
lord_commander
0 / 0 / 0
Регистрация: 20.05.2014
Сообщений: 137
18.12.2015, 15:54  [ТС]     Парсинг JSON-строки и вывод данных из строки #7
Если быть точнее, то вот: взял сгенерированую JSON-строку, из небольшой своей программки на c#, которая превращает элементы списка List в JSON-строку:
JSON
1
[{"firstName":"Alex","lastName":"Scott","dateofbirth":{"year":1901,"month":4,"day":30}},{"firstName":"Martin","lastName":"Yang","dateofbirth":{"year":1911,"month":6,"day":22}}]
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2015, 16:09     Парсинг JSON-строки и вывод данных из строки
Еще ссылки по теме:
Android Парсинг JSON'а
Android Парсинг json
Android Парсинг JSON
Парсинг JSON Android
Android Парсинг JSON-файла

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

Или воспользуйтесь поиском по форуму:
Pablito
2410 / 1855 / 581
Регистрация: 12.05.2014
Сообщений: 6,591
Завершенные тесты: 1
18.12.2015, 16:09     Парсинг JSON-строки и вывод данных из строки #8
Java
1
        ArrayList<Person> list = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());
str - это строка с json
на выходе будет Arraylist с объектами Person
Yandex
Объявления
18.12.2015, 16:09     Парсинг JSON-строки и вывод данных из строки
Ответ Создать тему
Опции темы

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