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

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

Войти
Регистрация
Восстановить пароль
 
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
#1

Как сформировать JSON для данных разных категорий? - Программирование Android

10.10.2015, 00:12. Просмотров 460. Ответов 7
Метки нет (Все метки)

У меня есть данные разных категорий: список контактов телефона, текстовые сообщения,координаты местоположения, фото(изображения) в формате Base64 и мне нужно эти данные передать на сервер по TCP и там их записать в текстовый файл предназначенный каждый для свой категории(файл контакты для котактов, файл сообщения - для сообщений и тд). Так вот я хочу составить JSON из этих данных и передать на сервер, чтобы там его разобрать по категориям. Так вот я знаю, что это можно сделать библиотекой GSON, но для это же эти данные нужно сформировать в какую - то структуру(класс, контейнер и тп) и потом эту структуру перевести в JSON. Так вот в какую структуру лучше упаковать этот набор данных и как образовать из них JSON??

Добавлено через 2 часа 18 минут
а разбить эти данные на несколько JSONов и отправить на сервер несколько JSONов и там соответсвенно их принять можно так??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2015, 00:12     Как сформировать JSON для данных разных категорий?
Посмотрите здесь:

JSOUP POST. В ответ вместо JSon приходит разметка страницы с полями для ввода данных - Программирование Android
Делаю пост запрос к апи сайта. Назад должен получить json, однако получаю разметку страницы с полями для ввода данных. Т.е. как будто...

Подскажите как сделать разметку для разных экранов - Программирование Android
У меня есть recyclerview в него устанавливается GridLayoutManager в 3 колонки, есть разметка itemа для этого списка. Item внутри себя...

Как установить программного ориентацию для разных экранов? - Программирование Android
Здравствуйте! Для своей программы хочу такую логику: для телефонов ориентация только вертикальная, а для планшетов - только...

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

CustomView разные изображения для разных экранов - одна система координат - Как? - Программирование Android
Есть изображение, карта, на ней я должен в координатах размещать объекты. Изображения разные: hdpi, ldpi, mdpi и так далее. Когда я...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
10.10.2015, 07:53     Как сформировать JSON для данных разных категорий? #2
по последней строке.
так можно, но так не делают: 1) время больше, за счет расходов на подключение и получение ответа для каждого, 2) есть вариант потерять часть данных, при том, что другая будет получена и обработана нормально.

по основному вопросу.
нужен некий класс (который все называют модель), который будет содержать в себе все, что подготовлено к передаче. создаем обьект этого класса, грузим в него все данные для передачи, потом gson именно этот обьект.
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
10.10.2015, 12:46  [ТС]     Как сформировать JSON для данных разных категорий? #3
А если этот класс будет содержать в виде полей массивы и другие контейнеры, собственные классы то как эти поля будут представлены в JSONе после преобразования все нормально дойдет на сервер без потерь??
И второе можно ли по TCP отправлять данные порциями: Скажем создал на клиенте сокет, установил соединение с сервером, передал одну порцию данных, закрыл сокет, потом снова открыл соединение передал следующую порцию и так пока не передашь все данные можно так?? Или скажем можно создать многопоточный клиент который каждым своим потоком будет устанавливать соединение с сервером(создавать с ним свой сокет для передачи) и передавать данные или же все же оптимальнее сформировать и отправить один JSON(просто поля данных класса тоже будут разные структуры,контейнеры)??
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
10.10.2015, 17:06     Как сформировать JSON для данных разных категорий? #4
оптимальнее сформировать один json на все обращение и обработать его в транзакции на сервере.
в сложных структурах главное чтобы все подчиненные структуры сводились к примитивным типам. дерево, например, оно не завернет, особенно если в него запихать какойнить типа обьект-сподобьектами-споддеревьями.
не ну Вы попробуйте. там вроде быстро становиться понятно. если сервер тоже Вы делаете - поймайте на стороне сервера, и гляньте, что он там шлет - будет понятнее.
ну короче там gson красиво все делает и правильно. будет структура в структуре.

по поводу сложной логики с сокетами. можно и так наколдовать. вопросов сразу несколько:
1) как будут обработаны несколько клиентов? ну типа я держу сокет, и он тоже хочет передать данные. как?
2) при разбивке данных, как будет обеспечиваться сборка и кто отвечает за достоверность?
3) есть уверенность, что на роутах будет открыт тот порт, который будет вызывать клиент?
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
10.10.2015, 18:19  [ТС]     Как сформировать JSON для данных разных категорий? #5
Ну не знаю можно же без сложных контейнеров. Ну допустим я создаю класс: элементы данных(поля) которого первое - массив контактов телефона содержит список людей которые у юзера в контактах, 2 поле - массив номера телефонов контактов, 3 поле - массив сообщения которые у юзера в сообщениях 4 поле массив изображений в байтовом формате вот и этот класс я хочу превратить в JSON смогу ли я это сделать и как??На счет порта да там будет один и тот же порт и на сервере и на клиенте
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
10.10.2015, 20:19     Как сформировать JSON для данных разных категорий? #6
решение с json будет на порядок проще, чем решение с передачей в сокет.

про класс. я не знаю, что у Вас за данные. попробую по тому, что Вы написали.
1) отдельный класс содержит поля: юзер и телефон(-ы).
2) создаете класс, в котором: массив обьектов класса 1, и массив сообщений со ссылками на 1 (в смысле там будет просто id).
и вот этот обьект класса 2 отдаете gson. он все это запакует в большую строку, и передаст всей пачкой на сервер.

а картинки я бы отправил отдельным потоком. вот их можно запихивать каждую по-отдельности. хотя это тоже зависит.
yura91
29 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,238
12.10.2015, 21:07  [ТС]     Как сформировать JSON для данных разных категорий? #7
и массив сообщений со ссылками на 1
что должно хранится в этом массиве, какое id?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2015, 06:48     Как сформировать JSON для данных разных категорий?
Еще ссылки по теме:

Datamodel.bin - json база данных - Программирование Android
Всем привет! Имеется игра для андроида - Hellfire The Summoning. вот по этой ссылке...

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

Локальная база данных в JSON. Возможно ли сразу добавить её в файлы приложения - Программирование Android
Есть база данных в формате JSON. Возможно ли сразу добавить её в файлы приложения и использовать её как локальную базу?

Доступ к базе данных из разных активити - Программирование Android
В общем-то в теме и вопрос, как получить доступ к базе данных и разных активити? Есть класс работы с базой class DBHelper extends...

Библиотеки для парсинга json массива - Программирование Android
Всем привет! Подскажите, пожалуйста, какую-нибудь хорошую стороннюю библиотеку для парсинга json массива? Использую IDE Eclipse. ...


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

Или воспользуйтесь поиском по форуму:
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
13.10.2015, 06:48     Как сформировать JSON для данных разных категорий? #8
эм... вернемся к 1)
>1) отдельный класс содержит поля: юзер и телефон(-ы).
+id, который и будет указан в сообщении. поэтому это должен быть не просто массив сообщений, а тоже структура: сообщение, (наверно id сообщения) и id пользователя.
Yandex
Объявления
13.10.2015, 06:48     Как сформировать JSON для данных разных категорий?
Ответ Создать тему
Опции темы

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