Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925

Gson десериализация объекта в объекте

04.12.2014, 11:56. Показов 3749. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, не могу сообразить как сделать...
есть класс:

Java
1
2
3
4
5
6
7
8
9
public class Message {
    private String message;
    private int id;
 
    public Message(String message, int id) {
        this.message = message;
        this.id = id;
    }
}
Сериализую так:
Java
1
2
3
4
5
6
7
 Message message = new Message("Hello world", 1);
        Map<String, Message> map = new HashMap<String, Message>();
        map.put("message1", message);
                Gson gson = new GsonBuilder()
                .setPrettyPrinting()
                .create();
        String json = gson.toJson(map);
JSON
1
2
3
4
5
6
{
  "message1": {
    "message": "Hello world",
    "id": 1
  }
}
А как собрать обратно его? если бы был один объект то тут все понятно.. а у меня получается объект в объекте.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2014, 11:56
Ответы с готовыми решениями:

Gson. Сериализация/десериализация с сохранением типов данных
Добрый вечер Использую GSon. При десеариализации данных из JSON структура класса к которому приводить данные заранее неизвестна....

Gson. Десериализация неизвестного json
Помогите разобраться как мне выцедить из json-строки нужные мне классы: { data: { 1: { id: 1, name:...

Передать свойство объекта в свойство объекта в объекте что в массиве
var array = ; function func(a, b, c) { array = {}; array.a = {}; // вместо &quot;a&quot; - аргумент array.a.b = text3; // и здесь. } ...

2
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
04.12.2014, 20:27
Можно конечно самому распарсить и перегнать в мапу
Java
1
2
3
4
5
6
7
8
9
10
11
12
Map<String, LinkedTreeMap> map1 = gson.fromJson(json, Map.class);
        //Map<String, Message> map = new HashMap<String, Message>();
        for(String s : map1.keySet())
        {
            LinkedTreeMap link = map1.get(s);
            map.put(s, 
                    new Message(
                    (String)link.get("message"),
                    ((Double)link.get("id")).intValue()
                    )
                  );
        }
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
05.12.2014, 03:14
reisal78,

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.Map;
 
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
 
public class App {
 
    public static void main(String[] args) {
        Message message = new Message("Hello world", 1);
        Map<String, Message> map = new HashMap<String, Message>();
        map.put("message1", message);
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String json = gson.toJson(map);
 
        Type type = new TypeToken<Map<String, Message>>() {}.getType();
        Map<String, Message> resultMap = gson.fromJson(json, type);
        System.out.println("Map: " + resultMap);
 
    }
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.12.2014, 03:14
Помогаю со студенческими работами здесь

Создание объекта в объекте
Делаю таблицу,используя для этого префаб. Каким образом я могу создать префаб в уже готовом объекте? Знаю как через метод Instantiate через...

Десериализация объекта из файла
Хотел написать простой дневник тренировок, всё вроде бы удалось, но возникли проблемы с считиванием &quot;базы&quot; из файла. Помогите...

Десериализация объекта в массив
Извиняюсь за беспокойство. Нужна помощь в реализации десериализации объектов в массив. Серриализация и десериализация находятся на разных...

JSON десериализация объекта
Доброго времени суток форумчане. ex = JsonConvert.DeserializeObject&lt;EX_VAL&gt;(result); foreach (string item in ex.error) ...

Json десериализация объекта
Доброго времени суток. Уже 2 день изучаю json ответы от сервера(десериализацию json в объект c#) Создал Класс public class MyClass ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru