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

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

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

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

38 ответов

4 просмотра

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, то есть работает в корне иначе

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

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Легче писать на C++ чем на C, если полностью не изучать C++, а знать только основное?
Алмаз
8
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Карта сайта