Size: a a a

2020 April 25

DP

Daniel Podolsky in Go-go!
но вообще - []struct{name string, val string}
источник

АП

Александр Попов... in Go-go!
есть много мелких мап - map[string]T надо их склеить в одну и отрендерить json
источник

DP

Daniel Podolsky in Go-go!
они есть в каком виде? слайсом?
источник

АП

Александр Попов... in Go-go!
я как понял падают с какого то генератора
источник

IG

Ilya Glotov in Go-go!
Ilya Glotov
Привет, есть следующая проблема: в канале приходят KV-структуры, которые я хочу на ходу кодировать в один большой JSON-объект, как если бы я разом замаршалил map[string]T, не сохраняя при этом весь map в памяти. Что я получаю сейчас:
{"k1":"v1"}
{"k2":"v2"}

Что я хочу:
{
"k1":"v1",
"k2":"v2",
...
}

Может кто-то уже изобрел такой энкодер?
this
источник

DP

Daniel Podolsky in Go-go!
тут такое дело
источник

DP

Daniel Podolsky in Go-go!
json - не потоковый формат. стандартные средства будут хотет объект целиком.

так что “выдать заголовок, потом добавлять по одной строки, потом закрыть json-объект” со стандартными средствами не получится
источник

АП

Александр Попов... in Go-go!
ну это понятно, может кто уже сляпал библиотеку
источник

DP

Daniel Podolsky in Go-go!
так не нужно же
источник

IG

Ilya Glotov in Go-go!
задача просто из разряда сову на глобус
источник

DP

Daniel Podolsky in Go-go!
а
источник

IG

Ilya Glotov in Go-go!
буду, видимо, делать Fprintf и упражняться с экранированием
источник

АП

Александр Попов... in Go-go!
говноооо
источник

AR

Aleksandr Razumov in Go-go!
jsoniter?
источник

AR

Aleksandr Razumov in Go-go!
Вроде он может как раз такое
источник

IG

Ilya Glotov in Go-go!
jsoniter.Stream, похоже, значительно упростит жизнь, благодарствую 👍
источник

М

МишанЯ in Go-go!
O . J
да
Спасибо. Сработало :)
источник

VI

Vadim Inshakov in Go-go!
Map и утечки
Ко вчерашнему обсуждению. Вроде выяснили, что мапы не гарантируют особождения памяти. И вот прямо сейчас я вижу в крупном проекте, от которого зависит проект нашей компании, кеш на sync.Map. И эта херня растет бесконечно, несмотря на косметические delete. При этом единственный workaround, который я видел - копировать одну мапу в другую при удалении ключей, чтобы ссылка на первую потерялась и GC почистил, НО sync.Map НЕЛЬЗЯ КОПИРОВАТЬ. Очень не хочется переписывать их кеш и потом добиваться принятия pull request, есть ли ещё какие-то способы освободить память из под мапы?
источник

IS

Ilya Sinelnikov in Go-go!
Подозреваю, что sync.Map используется не по назначению. Он создан для случаев, когда очень редко меняется. Так что лучше всего переписать на обычный мап и лок
источник

x

x-foby in Go-go!
Локоть Анатолий
Ямл неприятен тем, что лишний отступ и связность структур нарушена.
Жсон в этом смысле лучше, но комментариев там нет.
Так вам же никто не запрещает в YAML использовать JSON-нотации для определения вложенностей)
JSON — подмножество YAML. Используйте не отступы, а фигурные и квадратные скобки)
источник