Telegram Group & Telegram Channel
πŸŒ€ 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



tg-me.com/Golang_google/2975
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:
tg-me.com/Golang_google/2975

View MORE
Open in Telegram


Golang Telegram | DID YOU KNOW?

Date: |

Start with a fresh view of investing strategy. The combination of risks and fads this quarter looks to be topping. That means the future is ready to move in.Likely, there will not be a wholesale shift. Company actions will aim to benefit from economic growth, inflationary pressures and a return of market-determined interest rates. In turn, all of that should drive the stock market and investment returns higher.

Find Channels On Telegram?

Telegram is an aspiring new messaging app that’s taking the world by storm. The app is free, fast, and claims to be one of the safest messengers around. It allows people to connect easily, without any boundaries.You can use channels on Telegram, which are similar to Facebook pages. If you’re wondering how to find channels on Telegram, you’re in the right place. Keep reading and you’ll find out how. Also, you’ll learn more about channels, creating channels yourself, and the difference between private and public Telegram channels.

Golang from us


Telegram Golang
FROM USA