Π’ соврСмСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами стал Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ, Π½ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ справочник, Π²ΠΎ внСшнюю систСму ΠΈΠ»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ состояниС для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ восстановлСния. ИмСнно здСсь Π½Π° сцСну Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сСриализации. Π­Ρ‚ΠΎΡ‚ процСсс позволяСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ памяти Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈΠ»ΠΈ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΡƒΡŽ для хранСния ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎ сСти.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ нСсколько встроСнных инструмСнтов для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности ΠΈ сфСру примСнСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ JSON для Π²Π΅Π±-ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ, XML для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со стандартными ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ПониманиС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ этими ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ эффСктивный ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, избСгая распространСнных Π»ΠΎΠ²ΡƒΡˆΠ΅ΠΊ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π’ΠΈΠΏΠ”Π°Π½Π½Ρ‹Ρ….

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ прСобразования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΡƒΠ΄Π΅Π»ΠΈΠΌ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ вопросам ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠœΡ‹ Π½Π΅ просто пСрСчислим ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ. Π“ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ Π² тСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ?

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ сСриализации ΠΈ основныС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π² 1Π‘

БСриализация β€” это Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ процСсс прСобразования состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сохранСн ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½. Π’ контСкстС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ структуры Π΄Π°Π½Π½Ρ‹Ρ… (массива, структуры, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ) Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄. ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ процСсс, ΠΊΠΎΠ³Π΄Π° ΠΈΠ· строки ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° восстанавливаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, называСтся дСсСриализациСй. Π‘Π΅Π· этих ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ соврСмСнного API ΠΈΠ»ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π’Ρ‹Π±ΠΎΡ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° хранСния зависит ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ читаСмости ΠΈ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ Π΄Π°Π½Π½Ρ‹Ρ…. ВСкстовыС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ JSON ΠΈ XML, ΡƒΠ΄ΠΎΠ±Π½Ρ‹ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ взаимодСйствия с чСловСчСским Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² любом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. Однако ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ большС мСста ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ большС рСсурсов процСссора Π½Π° парсинг. Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², ΠΊΠΎΠΌΠΏΠ°ΠΊtnΡ‹ ΠΈ быстры, Π½ΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ Π±Π΅Π· спСциализированных срСдств ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ сСриализации ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², содСрТащих ссылки Π½Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, БправочникБсылка.НомСнклатура), ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ цСлСвая систСма ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ эти ссылки. Π’ чистом JSON ссылка прСвратится Π² строку-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ бСсполСзна Π²Π½Π΅ контСкста исходной Π±Π°Π·Ρ‹ 1Π‘.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с основными стандартами ΠΎΠ±ΠΌΠ΅Π½Π°. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ внСшниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’Ρ‹Π±ΠΎΡ€ зависит ΠΎΡ‚ ТСсткости ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами.

πŸ“Š Какой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сСриализации Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
JSON
XML
Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ (ΠΏΠΎΡ‚ΠΎΠΊ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ)
XDTO ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹
БобствСнный тСкстовый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚

Π Π°Π±ΠΎΡ‚Π° с JSON: Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π€ΠΎΡ€ΠΌΠ°Ρ‚ JSON (JavaScript Object Notation) стал Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ стандартом для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ 1Π‘ с внСшними сСрвисами. Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π§Ρ‚Π΅Π½ΠΈΠ΅JSON ΠΈ Π—Π°ΠΏΠΈΡΡŒJSON. Π­Ρ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ структурС Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ практичСски любой ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ записи начинаСтся с создания экзСмпляра Π—Π°ΠΏΠΈΡΡŒJSON ΠΈ открытия ΠΏΠΎΡ‚ΠΎΠΊΠ° Π²Ρ‹Π²ΠΎΠ΄Π°. Π—Π°Ρ‚Π΅ΠΌ вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски опрСдСляСт Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ JSON-структуру. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ БоотвСтствиС, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² JSON-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Массив β€” Π² JSON-массив. Π­Ρ‚ΠΎ избавляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ формирования строк.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π‘Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΠ’JSON(Π”Π°Π½Π½Ρ‹Π΅)

ΠŸΠΎΡ‚ΠΎΠΊ = Новый ΠŸΠΎΡ‚ΠΎΠΊΠ’ΠŸΠ°ΠΌΡΡ‚ΠΈ();

Π—Π°ΠΏΠΈΡΡŒ = Новый Π—Π°ΠΏΠΈΡΡŒJSON();

Π—Π°ΠΏΠΈΡΡŒ.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ();

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅(Π”Π°Π½Π½Ρ‹Π΅);

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ();

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Π½ΠΎ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π§Ρ‚Π΅Π½ΠΈΠ΅JSON инициализируСтся строкой ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ восстанавливаСт ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ структуру 1Π‘. Однако стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ограничСния: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ спСцифичСскиС Ρ‚ΠΈΠΏΡ‹ 1Π‘, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠŸΠ»Π°Π½Ρ‹Π’ΠΈΠ΄ΠΎΠ²Π Π°ΡΡ‡Π΅Ρ‚Π° ΠΈΠ»ΠΈ слоТныС Ρ‚ΠΈΠΏΡ‹ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ², ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ потСряны ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² строковоС прСдставлСниС Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ "Π‘Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΠ”Π°Ρ‚Π°Π’Ρ€Π΅ΠΌΡΠšΠ°ΠΊΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ" Π² настройках Π—Π°ΠΏΠΈΡΡŒJSON, Ссли ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ систСма Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со стандартным Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ Π΄Π°Ρ‚ ISO 8601. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ошибки парсинга Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Π’Π°ΠΆΠ½Ρ‹ΠΌ аспСктом являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… структур. JSON ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ справляСтся с рСкурсиСй, позволяя ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Однако ΠΏΡ€ΠΈ сСриализации цикличСских ссылок (ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ссылаСтся сам Π½Π° сСбя) Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка пСрСполнСния стСка. ВсСгда провСряйтС свои структуры Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… зависимостСй ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π²ΠΎ внСшний ΠΌΠΈΡ€.

ИспользованиС XML ΠΈ XDTO ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ

Когда трСбуСтся строгоС соблюдСниС схСмы Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ с государствСнными систСмами ΠΈΠ»ΠΈ старыми ERP-систСмами, Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ XML. Π’ 1Π‘ сущСствуСт ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ XDTO ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ структуру Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ обСспСчиваСт ΡΡ‚Ρ€ΠΎΠ³ΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ: Π²Ρ‹ Π½Π΅ смоТСтС Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΏΠΎΠ»Π΅ число, Ссли Π² схСмС объявлСна строка.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с XML Π² 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒXML. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ JSON, здСсь Π²Ρ‹ часто Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅Π³Π°ΠΌΠΈ, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΈ пространствами ΠΈΠΌΠ΅Π½, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ XDTO. ΠŸΡ€ΠΎΡ†Π΅ΡΡ становится Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ, Π½ΠΎ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π²Π΅Ρ€ΡΠΈΡŽ XML ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ тСхничСскиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

  • πŸ“¦ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ: XML позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ для слоТной ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….
  • πŸ›‘οΈ Валидация: НаличиС XSD-схСмы позволяСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ.
  • 🌐 Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ: ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ любая систСма Π² ΠΌΠΈΡ€Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ XML, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈ использовании XDTO Π²Ρ‹ сначала создаСтС ΠΏΠ°ΠΊΠ΅Ρ‚, описываСтС Π² Π½Π΅ΠΌ Ρ‚ΠΈΠΏΡ‹ ΠΈ свойства. Π—Π°Ρ‚Π΅ΠΌ создаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ этого Ρ‚ΠΈΠΏΠ°, заполняСтся Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ сСриализуСтся. Π­Ρ‚ΠΎ добавляСт слой абстракции, Π½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ структура Π΄Π°Π½Π½Ρ‹Ρ… останСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ссли ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ вСрсиями ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ (Namespaces) Π² XML критичСски Π²Π°ΠΆΠ½Ρ‹. Ошибка Π² объявлСнии пространства ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ внСшний парсСр просто Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ ваши Π΄Π°Π½Π½Ρ‹Π΅, посчитав ΠΈΡ… Ρ‡ΡƒΠΆΠ΅Ρ€ΠΎΠ΄Π½Ρ‹ΠΌΠΈ. ВсСгда свСряйтС URI пространств ΠΈΠΌΠ΅Π½ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ стороны.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° с XML Π² 1Π‘ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ с JSON, ΠΈΠ·-Π·Π° избыточности Ρ‚Π΅Π³ΠΎΠ² ΠΈ слоТности парсСра. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для высоконагруТСнных Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ², Π³Π΄Π΅ строгая схСма Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ часто ΠΎΡ‚Π΄Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ лСгковСсным Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, для ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ отчСтности XML остаСтся Π±Π΅Π·Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ.

Двоичная сСриализация Ρ‡Π΅Ρ€Π΅Π· ΠŸΠΎΡ‚ΠΎΠΊΠΈ

Если ваша Π·Π°Π΄Π°Ρ‡Π° β€” ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ систСмы 1Π‘ для быстрого восстановлСния ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя конфигурациями 1Π‘ Π±Π΅Π· участия Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, двоичная сСриализация являСтся ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Она ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€ΠΎΠ΄Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Для этого ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π§Ρ‚Π΅Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ… ΠΈ Π—Π°ΠΏΠΈΡΡŒΠ”Π°Π½Π½Ρ‹Ρ….

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° β€” ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ. Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π½Π΅ содСрТит Π»ΠΈΡˆΠ½ΠΈΡ… слуТСбных символов, ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΈΠ»ΠΈ Ρ‚Π΅Π³ΠΎΠ². Π”Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ "ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ" Π² Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ массивов ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ рСсурсов процСссора.

Π₯арактСристика JSON XML Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ
Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ Высокая БрСдняя ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚
Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ записи/чтСния Высокая Низкая Максимальная
ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Полная Полная Волько 1Π‘

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π°ΠΌ потрСбуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠŸΠΎΡ‚ΠΎΠΊΠ’ΠŸΠ°ΠΌΡΡ‚ΠΈ, ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Π² Π—Π°ΠΏΠΈΡΡŒΠ”Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ. Π’ Ρ€Π΅Π΄ΠΊΠΈΡ… случаях ΠΏΡ€ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… обновлСниях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ слоТных вычислСний ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния сСансовых Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ вСсь ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ структуру настроСк Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Π₯ранилищСЗначСния ΠΈΠ»ΠΈ Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ запускС.

ΠΡŽΠ°Π½ΡΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π₯ранилищСмЗначСния

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π₯ранилищСЗначСния ΠΏΠΎ сути являСтся ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΎΠΉ Π½Π°Π΄ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ сСриализациСй. Он автоматичСски сТимаСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ ΠΈΡ… (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ). ИспользованиС этого Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² рСгистрах свСдСний ΠΌΠΎΠΆΠ΅Ρ‚ сущСствСнно Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ запросов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ содСрТимоС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π΅ индСксируСтся ΠΈ Π½Π΅ участвуСт Π² ΠΎΡ‚Π±ΠΎΡ€Π°Ρ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”.

БСриализация спСцифичСских Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

НС всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ 1Π‘ ΠΏΠΎΠ΄Π΄Π°ΡŽΡ‚ΡΡ прямой сСриализации ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π»Π΅Π³ΠΊΠΎ. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ коллСкциям ΠΈ спСцифичСским Ρ‚ΠΈΠΏΠ°ΠΌ. НапримСр, Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ сСриализуСтся ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ, сохраняя Ρ‚ΠΈΠΏΡ‹ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅. А Π²ΠΎΡ‚ Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ аккуратности: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ иСрархия сохраняСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, особСнно Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚Π±ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Бсылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ слоТности. ΠŸΡ€ΠΈ сСриализации Π² JSON ссылка Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ прСвращаСтся Π² строку Π²ΠΈΠ΄Π° ref://Document.РСализацияВоваровУслуг.550e8400-e29b-41d4-a716-446655440000. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² систСму, которая Π½Π΅ Π·Π½Π°Π΅Ρ‚ GUID-ΠΎΠ² вашСй Π±Π°Π·Ρ‹, эта информация станСт мусором. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях рСкомСндуСтся ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ саму ссылку, Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ бизнСс-ΠΊΠ»ΡŽΡ‡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎΠΌΠ΅Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Π΄Π°Ρ‚Ρƒ).

  • πŸ“… Π”Π°Ρ‚Π° ΠΈ врСмя: ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° часовыС пояса. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π³ΠΈΠΎΠ½Π°Ρ… врСмя ΠΌΠΎΠΆΠ΅Ρ‚ "ΡƒΠΏΠ»Ρ‹Ρ‚ΡŒ", Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ врСмя (UTC).
  • πŸ’° Числа: Π’ΠΈΠΏ Число Π² 1Π‘ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π² стандартныС Ρ‚ΠΈΠΏΡ‹ JSON (Floating Point) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° потСря точности послС запятой. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ строковоС прСдставлСниС для Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹Ρ… сумм.
  • πŸ–ΌοΈ ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹: Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Base64 Π²Π½ΡƒΡ‚Ρ€ΠΈ тСкстовых Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ сСриализации.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² COM ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… соСдинСний. Они часто Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ прСобразования Π² Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ 1Π‘ (Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹, ΠœΠ°ΡΡΠΈΠ²Ρ‹). ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ внСшнСй систСмы Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Π—Π°ΠΏΠΈΡΡŒJSON ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкС выполнСния.

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ сСриализации

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ оптимизация ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… ошибки сСриализации ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ°Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ систСмы. НаиболСС частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ памяти ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ XML ΠΈΠ»ΠΈ JSON Π² строку. РСшСниС Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. НС Π·Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ вСсь Ρ„Π°ΠΉΠ» Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΈ записывайтС Π΅Π³ΠΎ частями, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ.

Для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ рСкомСндуСтся ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ лишниС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ², Ссли Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² цСлостности Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Π§Ρ‚Π΅Π½ΠΈΠ΅JSON Π΅ΡΡ‚ΡŒ настройки, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСизвСстныС свойства, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ вСрсиях API, ΠΊΠΎΠ³Π΄Π° старая конфигурация 1Π‘ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π½ΠΎΠ²ΠΎΠΉ систСмы с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ полями.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ довСряйтС Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ·Π²Π½Π΅, Π±Π΅Π· Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ. Π—Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ crafted JSON-строку, которая Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка ΠΏΡ€ΠΈ рСкурсивном парсингС ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Ρ‹ памяти. ВсСгда устанавливайтС Π»ΠΈΠΌΠΈΡ‚Ρ‹ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ 1Π‘ для Π°Π½Π°Π»ΠΈΠ·Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Иногда Π²Ρ‹Π³ΠΎΠ΄Π½Π΅Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ» записи ΠΏΠΎΠ»Π΅ΠΉ, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ тысячи Ρ€Π°Π·.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ сСриализация β€” это лишь инструмСнт. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π΅Ρ‘ использования зависит ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ: Ссли ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€ΠΈ поля ΠΈΠ· справочника, Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ вСсь ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ справочника со всСми Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌΠΈ. Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ лСгковСсныС DTO (Data Transfer Objects) ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΎΠ±ΠΌΠ΅Π½Π°.

πŸ’‘

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄: Для Π²Π½Π΅ΡˆΠ½ΠΈΡ… API ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ JSON с ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… быстрых ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² β€” Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, Π° для Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ отчСтности β€” строгиС XDTO ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² JSON?

НСт, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ„ΠΎΡ€ΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ слоТными Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΡΠΌΡƒΡŽ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΈΠ»ΠΈ Π’Π°Π±Π»ΠΈΡ†ΡƒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΈ ΡƒΠΆΠ΅ этот ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² Π—Π°ΠΏΠΈΡΡŒJSON.

Как ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ ΠΏΡ€ΠΈ записи Π² JSON, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ кракозябр?

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π—Π°ΠΏΠΈΡΡŒJSON ΠΈ Π§Ρ‚Π΅Π½ΠΈΠ΅JSON Π² 1Π‘ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ UTF-8. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, Ссли Π²Ρ‹ сохраняСтС ΠΏΠΎΡ‚ΠΎΠΊ Π² Ρ„Π°ΠΉΠ» Ρ‡Π΅Ρ€Π΅Π· тСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ UTF-8, ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» Π² старых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ записи Π² Ρ„Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ BOM (Byte Order Mark), Ссли это трСбуСтся Ρ†Π΅Π»Π΅Π²ΠΎΠΉ систСмой.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈ дСсСриализации число прСвращаСтся Π² строку?

Π­Ρ‚ΠΎ происходит, Ссли Π² JSON-источникС число записано Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "100" вмСсто 100). ΠŸΠ°Ρ€ΡΠ΅Ρ€ 1Π‘ ΡƒΠ²Π°ΠΆΠ°Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… источника. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° сторонС источника ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Число() для явного прСобразования послС чтСния.

Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° для сСриализации?

ВСхничСского ТСсткого ограничСния Π² ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ‚, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти процСсса rphost. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π² нСсколько Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ Π² ΠΎΠ΄Π½Ρƒ строку ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ падСнию процСсса. Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈ Π±Π»ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.