GOLANG_INTERVIEW Telegram 1212
Forwarded from Golang
🌀 Go 1.25 приносит мощный апгрейд JSON-библиотеки: encoding/json/v2 — переработанная с нуля система сериализации с гибкой настройкой, высокой скоростью и новым API

Что изменилось:

● Прямая работа с io.Writer и io.Reader
Новые функции MarshalWrite и UnmarshalRead позволяют писать и читать JSON напрямую, без создания Encoder/Decoder. Это упрощает потоковую работу и уменьшает аллокации.

● Потоковая обработка JSON
Появился модуль jsontext с функциями MarshalEncode и UnmarshalDecode, которые читают и пишут JSON по одному объекту за раз. Это критично для систем, обрабатывающих большие JSON-потоки, например, в Kubernetes.

● Гибкая настройка
Теперь функции Marshal и Unmarshal принимают опции, напрямую влияющие на формат вывода и поведение парсера:
- OmitZeroStructFields(true) — пропускать нулевые поля
- StringifyNumbers(true) — числа как строки
- MatchCaseInsensitiveNames(true) — имена полей без учёта регистра
- FormatNilMapAsNull(true)nil`-карты как `null
- WithIndent(" ") — отступы в JSON

Пример:

json.Marshal(
user,
json.OmitZeroStructFields(true),
json.StringifyNumbers(true),
jsontext.WithIndent(" "),
)


● Новое поведение по умолчанию
Теперь:

JSON-парсинг чувствителен к регистру

Дублирующиеся ключи запрещены

Неизвестные поля игнорируются, если не указано иное

Можно включить прежнее поведение опциями (например, MatchCaseInsensitiveNames)

● Ускорение десериализации
Внутренний движок полностью переписан — ускорение десериализации в 2.7–10.2 раз. При использовании потоковых API (UnmarshalJSONFrom) — прирост до 40×.

● Экспериментальный статус
API ещё может меняться. По умолчанию encoding/json использует новый движок, но json/v2 доступен отдельно и требует флага:



GOEXPERIMENT=jsonv2


Это — один из самых масштабных апдейтов стандартной библиотеки Go за последние годы. Подходит для тех, кто работает с тяжёлыми JSON-структурами, большими потоками или требует строгого контроля сериализации.

📌 Полный разбор и примеры

@golang_google

#golang #go #JSON
🔥26👍76



tgoop.com/golang_interview/1212
Create:
Last Update:

🌀 Go 1.25 приносит мощный апгрейд JSON-библиотеки: encoding/json/v2 — переработанная с нуля система сериализации с гибкой настройкой, высокой скоростью и новым API

Что изменилось:

● Прямая работа с io.Writer и io.Reader
Новые функции MarshalWrite и UnmarshalRead позволяют писать и читать JSON напрямую, без создания Encoder/Decoder. Это упрощает потоковую работу и уменьшает аллокации.

● Потоковая обработка JSON
Появился модуль jsontext с функциями MarshalEncode и UnmarshalDecode, которые читают и пишут JSON по одному объекту за раз. Это критично для систем, обрабатывающих большие JSON-потоки, например, в Kubernetes.

● Гибкая настройка
Теперь функции Marshal и Unmarshal принимают опции, напрямую влияющие на формат вывода и поведение парсера:
- OmitZeroStructFields(true) — пропускать нулевые поля
- StringifyNumbers(true) — числа как строки
- MatchCaseInsensitiveNames(true) — имена полей без учёта регистра
- FormatNilMapAsNull(true)nil`-карты как `null
- WithIndent(" ") — отступы в JSON

Пример:

json.Marshal(
user,
json.OmitZeroStructFields(true),
json.StringifyNumbers(true),
jsontext.WithIndent(" "),
)


● Новое поведение по умолчанию
Теперь:

JSON-парсинг чувствителен к регистру

Дублирующиеся ключи запрещены

Неизвестные поля игнорируются, если не указано иное

Можно включить прежнее поведение опциями (например, MatchCaseInsensitiveNames)

● Ускорение десериализации
Внутренний движок полностью переписан — ускорение десериализации в 2.7–10.2 раз. При использовании потоковых API (UnmarshalJSONFrom) — прирост до 40×.

● Экспериментальный статус
API ещё может меняться. По умолчанию encoding/json использует новый движок, но json/v2 доступен отдельно и требует флага:



GOEXPERIMENT=jsonv2


Это — один из самых масштабных апдейтов стандартной библиотеки Go за последние годы. Подходит для тех, кто работает с тяжёлыми JSON-структурами, большими потоками или требует строгого контроля сериализации.

📌 Полный разбор и примеры

@golang_google

#golang #go #JSON

BY Golang вопросы собеседований










Share with your friend now:
tgoop.com/golang_interview/1212

View MORE
Open in Telegram


Telegram News

Date: |

Telegram has announced a number of measures aiming to tackle the spread of disinformation through its platform in Brazil. These features are part of an agreement between the platform and the country's authorities ahead of the elections in October. How to create a business channel on Telegram? (Tutorial) For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data. How to create a business channel on Telegram? (Tutorial) Telegram message that reads: "Bear Market Screaming Therapy Group. You are only allowed to send screaming voice notes. Everything else = BAN. Text pics, videos, stickers, gif = BAN. Anything other than screaming = BAN. You think you are smart = BAN.
from us


Telegram Golang вопросы собеседований
FROM American