~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 395DCE3699081C97C66641019A01AE1C__1715064420 ✰
Заголовок документа оригинал.:
✰ Gson - Wikipedia ✰
Заголовок документа перевод.:
✰ Гсон — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Gson ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/39/1c/395dce3699081c97c66641019a01ae1c.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/39/1c/395dce3699081c97c66641019a01ae1c__translat.html ✰
Дата и время сохранения документа:
✰ 18.06.2024 09:28:48 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 7 May 2024, at 09:47 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Гсон — Википедия Jump to content

Гсон

Из Википедии, бесплатной энциклопедии
Гугл Гсон
Разработчики) Google
Начальная версия 22 мая 2008 г .; 16 лет назад ( 22 мая 2008 г. )
Стабильная версия
2.10.1 [1]  Отредактируйте это в Викиданных/ 6 января 2023 г .; 17 месяцев назад ( 6 января 2023 )
Репозиторий
Написано в Джава
Операционная система Кросс-платформенный
Лицензия Лицензия Апач 2.0
Веб-сайт github /Google /гсон

Gson или Google Gson — это с открытым исходным кодом библиотека Java , которая сериализует объекты Java в JSON (и десериализует их обратно в Java).

История [ править ]

Библиотека Gson изначально была разработана для внутренних целей Google, а версия 1.0 была выпущена 22 мая 2008 г. в соответствии с условиями лицензии Apache 2.0. Последняя версия 2.10.1 была выпущена 6 января 2023 г.

Использование [ править ]

Gson использует отражение, а это означает, что классы не нужно изменять для сериализации или десериализации. По умолчанию классу нужен только определенный конструктор по умолчанию (без аргументов); однако это требование можно обойти (см. Возможности ).

В следующем примере показано базовое использование Gson при сериализации образца объекта:

 упаковки  пример  ; 

  общественный   класс   Car   { 
     публичной   строки   производитель  ; 
      публичная   строковая   модель  ; 
      общественная   двойная   вместимость  ; 
      публичная   логическая   авария  ; 

      public   Car  ()   { 
     } 

     public   Car  (  строки   производитель  ,   строки   модель  ,   двойная   емкость  ,   логическая   авария  )   { 
         this  .   производитель   =   производитель  ; 
          этот  .   модель   =   модель  ; 
          этот  .   емкость   =   емкость  ; 
          этот  .   несчастный случай   =   несчастный случай  ; 
      } 

     @Override 
     public   String   toString  ()   { 
         return   (  "Производитель: "   +   производитель   +   ", "   +   "Модель: "   +   модель   +   ", "   +   "Мощность: "   +   мощность   +   ", "   +   "Авария: "   +   авария  ); 
      } 
 } 
 упаковки  пример  ; 

  общественный   класс   Person   { 
     публичной   строки   имя  ; 
      общедоступная   строка   фамилия  ; 
      общественный   автомобиль  []   автомобили  ; 
      общественный   международный   телефон  ; 
      общественный   переходный   int   age  ; 

      public   Person  ()   { 
     } 

     public   Person  (  строка   имени  ,   строка   фамилии  ,   int   телефон  ,   int   возраст  ,   Car  []   cars  )   { 
         this  .   имя   =   имя  ; 
          этот  .   фамилия   =   фамилия  ; 
          этот  .   автомобили   =   автомобили  ; 
          этот  .   телефон   =   телефон  ; 
          этот  .   возраст   =   возраст  ; 
      } 

     @Override 
     public   String   toString  ()   { 
         StringBuilder   sb   =   новый   StringBuilder  (); 
          сб  .   добавить  (  "Имя:"  ).   добавить  (  имя  ).   добавить  (  " "  ).   добавить  (  фамилия  ).   добавить  (  "\n"  ); 
          сб  .   добавить  (  "Телефон:"  ).   добавить  (  телефон  ).   добавить  (  "\n"  ); 
          сб  .   добавить  (  «Возраст:»  ).   добавить  (  возраст  ).   добавить  (  "\n"  ); 
          интервал   я   =   0  ; 
          for   (  Автомобиль    :   автомобили  )   { 
             я  ++  ; 
              сб  .   добавить  (  «Автомобиль»  ).   добавить  (  я  ).   добавить  (  ":"  ).   добавить  (  машина  ).   добавить  (  "\n"  ); 
          } 
         вернуть   что-л  .   нанизывать  (); 
      } 
 } 
пакет   основной  ; 

 импорта.Автомобиль    пример  ; 
 импорта.Человек    пример  ; 
  импортировать   com.google.gson.Gson  ; 
  импортировать   com.google.gson.GsonBuilder  ; 

  public   class   Main   { 
     public   static   void   main  (  String  []   args  )   { 
         // Включаем красивую печать для демонстрационных целей 
         // Также можно напрямую создать экземпляр с помощью `new Gson()`;   это создаст компактный JSON 
         Gson   gson   =   new   GsonBuilder  ().   setPrettyPrinting  ().   создавать  (); 
          Автомобиль   audi   =   новый   автомобиль  (  «Audi»  ,   «A4»  ,   1.8  ,   false  ); 
          Автомобиль   skoda   =   новый   Автомобиль  (  «Шкода»  ,   «Октавия»  ,   2.0  ,   правда  ); 
          Автомобиль  []   автомобили   =   {  audi  ,   skoda  }; 
          Человек   johnDoe   =   новый   человек  (  «Джон»  ,   «Доу»  ,   2025550191  ,   35  ,   автомобили  ); 
          Система  .   вне  .   println  (  gson  .  toJson  (  johnDoe  )); 
      } 
 } 

Вызов кода вышеуказанного основного класса приведет к следующему выводу JSON:

{ 
   "имя"  :   "Джон"  , 
   "фамилия"  :   "Доу"  , 
   "автомобили"  :   [ 
     { 
       "производитель"  :   "Ауди"  , 
       "модель"  :   "А4"  , 
       "мощность"  :   1,8  , 
       "авария"  :   ложь 
     }, 
     { 
       "производитель"  :   "Шкода"  , 
       "модель"  :   "Октавия"  , 
       "мощность"  :   2.0  , 
       "авария"  :   правда 
     } 
   ], 
   "телефон"  :   2025550191 
 } 

Диаграмма с данными из JSON.

поля Person Поскольку возраст помечен как временный , он не включается в выходные данные.

пакет   основной  ; 

 импорта.Человек    пример  ; 
  импортировать   com.google.gson.Gson  ; 

  общественный   класс   Main   { 
     public   static   void   main  (  String  []   args  )   { 
         Gson   gson   =   new   Gson  (); 
          String   json   =   "{\"name\":\"Джон\",\"фамилия\":\"Доу\",\"cars\":[{\"производитель\":\"Audi\",\ "модель\":\"А4\","   + 
                 "\"вместимость\":1,8,\"авария\":false},{\"производитель\":\"Škoda\",\"модель\": \"Октавия\",\"емкость\""   + 
                 ":2.0, \"авария\":истина}],\"телефон\":2025550191}"  ; 
          Человек   johnDoe   =   gson  .   fromJson  (  json  ,   Person  .  class  ); 
          Система  .   вне  .   println  (  johnDoe  .  toString  ()); 
      } 
 } 

Чтобы десериализовать выходные данные, полученные в последнем примере, вы можете выполнить приведенный выше код, который генерирует следующий вывод:

Имя: Джон Доу 
 Телефон: 2025550191 
 Возраст: 0 
 Автомобиль 1: Производитель: Audi, Модель: A4, Объем: 1.8, Авария: ложная 
 Автомобиль 2: Производитель: Škoda, Модель: Octavia, Объем: 2.0, Авария: правда 

Это показывает, как Gson можно использовать с системой модулей платформы Java для приведенного выше примера:

модуль   GsonExample   { 
     требуется   com  .   Google  .   гсон  ; 
      // Открытие пакета, объявленного в приведенном выше примере, чтобы позволить Gson использовать отражение классов 
     // внутри пакета (а также доступ к закрытым полям), 
     открывает   пример   для   com  .   Google  .   гсон  ; 
  } 

Более подробные примеры можно найти в руководстве по использованию Gson в их репозитории GitHub .

Особенности [ править ]

  • Gson может обрабатывать коллекции , универсальные типы и вложенные классы (включая внутренние классы , что невозможно по умолчанию).
  • При десериализации Gson перемещается по дереву типов десериализуемого объекта, что означает, что он игнорирует дополнительные поля, присутствующие во входных данных JSON.
  • Пользователь может:
    • напишите собственный сериализатор и/или десериализатор, чтобы они могли контролировать весь процесс и даже десериализовать экземпляры классов, исходный код которых недоступен.
    • напишите InstanceCreator, который позволяет им десериализовать экземпляры классов без определенного конструктора без аргументов.
  • Gson обладает широкими возможностями настройки, поскольку вы можете указать:
  • Компактная/красивая печать (независимо от того, хотите ли вы компактный или читаемый результат)
  • Как обрабатывать пустые поля объекта — по умолчанию они отсутствуют в выводе
  • Исключение полей — правила того, какие поля следует исключить из десериализации.
  • Как преобразовать имена полей Java

Ссылки [ править ]

  1. ^ «Выпуск 2.10.1» . 6 января 2023 г. Проверено 12 января 2023 г.

[1]

[2]

Внешние ссылки [ править ]

Дальнейшее чтение [ править ]

  1. Дополнительная информация о пакете com.google.gson (из javadoc.io )
  2. Дополнительная информация о классе Gson (из javadoc.io )
  1. ^ Женков, Якоб. «ГСОН – Гсон» . http://www.jenkov.com . Проверено 28 декабря 2023 г.
  2. ^ Gson , Google, 28 декабря 2023 г. , получено 28 декабря 2023 г.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 395DCE3699081C97C66641019A01AE1C__1715064420
URL1:https://en.wikipedia.org/wiki/Gson
Заголовок, (Title) документа по адресу, URL1:
Gson - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)