GOLANG_GOOGLE Telegram 2975
πŸŒ€ 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
πŸ”₯139πŸ‘24❀18



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

View MORE
Open in Telegram


Telegram News

Date: |

Users are more open to new information on workdays rather than weekends. Judge Hui described Ng as inciting others to β€œcommit a massacre” with three posts teaching people to make β€œtoxic chlorine gas bombs,” target police stations, police quarters and the city’s metro stations. This offence was β€œrather serious,” the court said. The administrator of a telegram group, "Suck Channel," was sentenced to six years and six months in prison for seven counts of incitement yesterday. Just at this time, Bitcoin and the broader crypto market have dropped to new 2022 lows. The Bitcoin price has tanked 10 percent dropping to $20,000. On the other hand, the altcoin space is witnessing even more brutal correction. Bitcoin has dropped nearly 60 percent year-to-date and more than 70 percent since its all-time high in November 2021. bank east asia october 20 kowloon
from us


Telegram Golang
FROM American