169 похожих чатов

Ребят. Приходит в ответе Json в котором один айтем имеет

херову тучу вложеных обьектов/полей.
Мне нужно брать только несколько из них. Какой самый быстрый способ это сделать ?

Обычно использовал конвертеры json to kotlin data class. Но в этом случае явно не вариант.

38 ответов

15 просмотров

Gson

повесил в закладки на изучение :D спасибо

Опиши руками класс с нужными полями. (Дата классы тут вообще не при чём)

Ну моши тоже недостатков не лишен, для него GSON гораздо проще будет (плюс меньше возни с опциональностью полей)

Что там за возня? Моши по сути Гсон 2.0

Ну фиг знает, начнем с того, что без лишнего головняка можно сократить количество кода при связке GSON + Retrofit 2 — просто задавая фабрику конвертера (который сами squareup и выкатили). Возможно, для моши тоже есть такая приятная плюшка — тут, признаюсь, не влезал. Да и Moshi подтягивать предпочитаю все же на крупных проектах, иногда на средних (зависит от задач)

Тоже есть конвертер. Что это за мантра про крупные проекты, где грань и в чём смысл?

Грань и понятие крупного проекта в любом случае у каждого свои. Все же я считаю Moshi куда более мощным и гибким инструментом, нежели GSON — и потому лучше его использовать для соответствующих задач. Это как холивар между Koin и Dagger 2

что-то не могу представить себе ситуацию, в которой один сериализатор даст значительное преимущество перед другим. Все что <300мс не считаю

Крупный проект, это когда апкашка с хелловорлдом из-за подключения всего что есть стала больше 100 мб 🙂

Дело не только в скорости работы — а в сложности структур данных, их объеме, в целом в дизайне API и так далее

Там одинаково: воткнул конвертер и забыл.

структуры - да; как объем играет роль? api вообще не при делах, хоть из файлов брать

Не откуда брать, а дизайн API.

причем тут дизайн api? сериализатору все равно откуда пришли данные

kotlinx-serialization?

+

сложный вопрос) Про моши можно легко сказать, что оно заменяет гсон. А Kotlinx.serialization — сильно другая технология.

ну почему, просто kotlinx-serialization ещё и не только в JSON может, но при этом это в него не впилено, а добавляется отдельными депендеси, так что оверхэда не получается

В моши вроде придётся для каждого поля задавать ключ для декодирования, а гсон умеет в fromSnakeCase decoding strategy

уже не нужно)

почему сильно другая технология?)

канеш там много всяких штук, которые могут быть лишними, но в целом никакого оверхеда эта либа не добавляет

я ничего не говорю про оверхед

а что тогда другого?

А подскажи куда смотреть

подход другой. Moshi — практически drop-in replacement

Просто при описании dto не указывай ключи — если имена полей совпадают в dto и ответе, то обработаются автоматом (можно комбинировать в рамках dto)

Охуенчик. Больше ничего другого не надо указывать?

это как? что там аннотации, что тут аннотации

А в гсоне что там надо дописывать?

дописывать куда, к чему, для чего?

API у гсона и моши схожий, аннотации одинаково называются, принцип работы одинаковый

Дело же не только в скорости, но ещё и в фича сетах. Правда я не разбирался глубоко в разнице

А расскажи почему ты так думаешь (почему это факт). Либо брось статьей. Если много прошу - скажи, я загуглю)

потому что оно генерирует IR, то есть работает в корне иначе

Хм, интересно) спасибо, посмотрю!

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта