Comments 27
А почему надо было выбрать jackson? На основании чего Вы выбрали конкретно эту библиотеку?
Библиотек море и каждый использует то, что ему удобно/нравится.
Если можете сказать что-то за jackson, так и говорите:
«Почему не jackson? Он быстрее/выше/сильнее.
У него есть поддержка того-то и того-то, а gson ничего подобного нет».
Да и не понятно, насколько глубоко должны уходить эти вопросы. Например: «Почему Gson, а не Jackson? Почему json, а не protobuf? Зачем вам вообще сериализовать-десериализовать данные?» Какой из этих вопросов уже не подходит под «автор вопроса вполне справедливо посчитал, что автор статьи имел возможность ознакомиться с обеими альтернативами, и поделится с нами результатами своего сравнительного анализа»? Статья рассматривает один-единственный вопрос: «Как работать с Gson», а те, кому нужно сравнение с альтернативами, могут и другие источники поискать.
Но на тему сравнения подобных инструментов есть довольно много информации, правда, в основном на английском. Если вам действительно интересен такой обзор на русском языке — возможно, он заслуживает отдельной статьи.
К сожалению, попытка использовать gson для этого не увенчалась успехом: всех его богатых возможностей кастомизации оказалось недостаточно.
Все уперлось в конечном итоге в ограниченные возможности JsonWriter: String там, как положено в json, всегда в кавычках и с соответствующим escaping'ом.
{ }
на новую строку в java ужасно бесит:(Нет, я понимая когда пишут свои адаптеры для типов, типа
ObjectID
org.bson.types.ObjectId
для монги. Но вот так адаптеры под классы.И кстати, да, на практике был случай, когда это действительно было удобно — при передачи данных в систему на Scala + Mongo.
Orin
или Kodi
и т.д.Прогоните свой json с именами в виде ключей хотябы тут json2csharp.com/ и убедитесь.
Так же если отправить его в Rails он сериализует каждого гнома в отдельный хеш с именем гнома, хотя должен был бы в масив с хешами чтобы удобней по ним можно было проходить.
«Gson или «Туда и Обратно»» или (точно не помню) «Не стреляйте себе в ногу. О разработке».
Что это? О чем это? Нужно ли мне это? Вот я вижу, что-то про json. Ну вроде я рабаю с json. Зашел. А не, это про другое. Вышел.
И таких постов все больле и больше.
А некоторые комментаторы реально похожи на «бабок в очереди».
Статья годная, и правильно, что без дроблений на части, спасибо.
Где в этой строке "Type weaponsListType = new TypeToken<List>(){}.getType();" у вас "наследуем параметризованный класс TypeToken" ? Где тут наследование ?
Вот так зайдешь случайно на Хабр 10 лет спустя - а тут комментарий.. С одной стороны - приятно, с другой - я с джавой лет 8 из этих 10 не работал уже, ничего не помню.. Пришлось гуглить. :D
Итак, если процитировать строку более полно:
наследуем параметризованный класс
TypeToken
анонимным классом
Ключевая фраза тут - анонимным классом.
Вот эти скобочки {}
означают, что мы создаём инстанс анонимного класса-наследника от TypeToken
(если не ошибаюсь) - но при этом ничего не меняем просто, не переопределяем и не добавляем никаких полей.
Вот, к примеру, статья про анонимные классы: https://javarush.com/groups/posts/2193-anonimnihe-klassih
По-моему так. Увидимся в 2034! :D
Gson или «Туда и Обратно»