Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСриализация: java — БСриализация простыми словами

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

БСриализация (C#) | Microsoft Docs





  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 2Β ΠΌΠΈΠ½


Π‘Ρ‹Π»ΠΈ Π»ΠΈ свСдСния Π½Π° этой страницС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ?

ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ свои впСчатлСния




Π”Π°



НСт



Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π·Ρ‹Π²?

ΠžΡ‚Π·Ρ‹Π²Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ Π² ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΡŽ ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚. НаТав ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ», Π²Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΎΡ‚Π·Ρ‹Π² для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΈ слуТб ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚. ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.


ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ



Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

БСриализация — это процСсс прСобразования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ² для сохранСния ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ». Π­Ρ‚Π° опСрация ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ воссоздания ΠΏΡ€ΠΈ нСобходимости. ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ процСсс называСтся дСсСриализациСй.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сСриализация

На этом рисункС ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΎΠ±Ρ‰ΠΈΠΉ процСсс сСриализации.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ сСриализуСтся Π² ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слуТит для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΡ‚ΠΎΠΊ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ свСдСния ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π² Ρ‚ΠΎΠΌ числС ΠΎ Π΅Π³ΠΎ вСрсии, языкС ΠΈ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π½ΠΈ сборки. Π’ этом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ памяти.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ сСриализации

БСриализация позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π²ΠΎΡΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€ΠΈ нСобходимости. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ хранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠŸΠΎΡΡ€Π΅Π΄ΡΡ‚Π²ΠΎΠΌ сСриализации Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

  • ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π΅Π±-слуТбы
  • ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ
  • ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· брандмауэр Π² Π²ΠΈΠ΄Π΅ строки JSON ΠΈΠ»ΠΈ XML
  • Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ свСдСний ΠΎ бСзопасности ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСниями

БСриализация JSON

Π’ пространствС ΠΈΠΌΠ΅Π½ System.Text.Json содСрТатся классы для сСриализации ΠΈ дСсСриализации Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON. JSONΒ β€” это ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ стандарт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСтся для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.

Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π² строку, массив Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ Π² соотвСтствии со спСцификациСй JSON RFCΒ 8259. Для управлСния способами сСриализации ΠΈΠ»ΠΈ дСсСриализации с использованиСм JsonSerializer экзСмпляр класса:

Двоичная сСриализация ΠΈ сСриализация XML

Π’ пространствС ΠΈΠΌΠ΅Π½ System.Runtime.Serialization содСрТатся классы для сСриализации ΠΈ дСсСриализации Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ XML.

Двоичная сСриализация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, создавая ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ для хранСния ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ‡Π΅Ρ€Π΅Π· сСтСвыС сокСты. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ сСриализации сСриализуСт всС элСмСнты, Π΄Π°ΠΆΠ΅ доступныС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния. Π’Π°ΠΊΠΆΠ΅ этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅

Двоичная сСриализация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ опасной. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ BinaryFormatter Security Guide.

ΠŸΡ€ΠΈ XML-сСриализации всС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ поля ΠΈ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π°) ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π² XML-ΠΏΠΎΡ‚ΠΎΠΊ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° XSD (язык опрСдСлСния схСмы XML). XML-сСриализация создаСт строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ классы с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ свойствами ΠΈ полями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ XML. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ System.Xml.Serialization содСрТит классы для сСриализации ΠΈ дСсСриализации XML. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ экзСмпляров класса, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅ΠΌΡƒΡŽ XmlSerializer, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ классам ΠΈ ΠΈΡ… Ρ‡Π»Π΅Π½Π°ΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹.

ΠŸΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² сСриализуСмый

Для Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ сСриализации ΠΈΠ»ΠΈ сСриализации XML Π²Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ:

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊ Ρ‚ΠΈΠΏΡƒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ SerializableAttribute, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сСриализации экзСмпляров этого Ρ‚ΠΈΠΏΠ°. Если Π² Ρ‚ΠΈΠΏΠ΅ Π½Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Β SerializableAttribute, ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ сСриализации выдаСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ поля, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ NonSerializedAttribute. Если ΠΏΠΎΠ»Π΅ сСриализуСмого Ρ‚ΠΈΠΏΠ° содСрТит ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, дСскриптор ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ срСды, ΠΈ содСрТимоС этого ΠΏΠΎΠ»Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ срСдС, Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсСриализуСмым.

Если сСриализуСмый класс содСрТит ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΡƒ SerializableAttribute, эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ сСриализованы.

Базовая ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ сСриализации

БущСствуСт Π΄Π²Π° способа Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ XMLΒ β€” Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ.

Базовая сСриализация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ .NET для автоматичСской сСриализации ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ЕдинствСнноС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² нСобходимости ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ SerializableAttribute ΠΊ классу. Атрибут NonSerializedAttribute Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ· сСриализации ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ.

ΠŸΡ€ΠΈ использовании Π±Π°Π·ΠΎΠ²ΠΎΠΉ сСриализации ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам. Если ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ вСрсиями Π²Π°ΠΆΠ½Ρ‹, рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. Базовая сСриализация являСтся самым простым способом сСриализации, Π½ΠΎ Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ контроля Π½Π°Π΄ процСссом.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΊΠ°ΠΊ Π±ΡƒΠ΄ΡƒΡ‚ сСриализованы. Класс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΡƒ SerializableAttribute ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс ISerializable. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ конструктор.

БСриализация конструктора

БСриализация конструктора — это особая Ρ„ΠΎΡ€ΠΌΠ° сСриализации, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ примСняСтся способ постоянного хранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² срСдствах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. БСриализация конструктора выполняСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ„Π°ΠΉΠ» исходного ΠΊΠΎΠ΄Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ впослСдствии ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» исходного ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ SQL.

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΠ±Π·ΠΎΡ€ System.Text.Json описываСтся способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ System.Text.Json.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство. БСриализация ΠΈ дСсСриализация JSON Π² .NET.
Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ свСдСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON с использованиСм класса JsonSerializer.

ПошаговоС руководство: Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Visual Studio (C#)
ДСмонстрируСт, ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСриализации ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ экзСмплярами, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ значСния ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ создании экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство. Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ· XML-Ρ„Π°ΠΉΠ»Π° (C#)
ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ считываниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ Π±Ρ‹Π»ΠΈ записаны Π² XML-Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса XmlSerializer.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство. Π—Π°ΠΏΠΈΡΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² XML-Ρ„Π°ΠΉΠ» (C#)
ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· класса Π² XML-Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса XmlSerializer.



БСриализация — это… Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ БСриализация?

БСриализация (Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ) β€” процСсс ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ². ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сСриализации являСтся опСрация дСсСриализации (структуризации) β€” восстановлСниС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ состояния структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

БСриализация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎ сСти ΠΈ для сохранСния ΠΈΡ… Π² Ρ„Π°ΠΉΠ»Ρ‹. НапримСр, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ распрСдСлённоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π·Π½Ρ‹Π΅ части ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ со слоТной структурой. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС для Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдполагаСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ осущСствляСт ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ заполняСтся Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π·Π°Ρ‚Π΅ΠΌ вызываСтся ΠΊΠΎΠ΄ сСриализации, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сСриализации пСрСдаётся ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ сторонС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΈΠ»ΠΈ HTTP. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ создаёт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ° ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ΄ дСсСриализации, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ прилоТСния-отправитСля. По Ρ‚Π°ΠΊΠΎΠΉ схСмС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сСриализация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· SOAP Π² Microsoft .NET.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅

БСриализация прСдоставляСт нСсколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… возмоТностСй:

  • ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сохраняСмости ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π΅Π½, Ρ‡Π΅ΠΌ запись ΠΈΡ… свойств Π² тСкстовый Ρ„Π°ΠΉΠ» Π½Π° диск ΠΈ повторная сборка ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²;
  • ΠΌΠ΅Ρ‚ΠΎΠ΄ осущСствлСния ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² SOAP;
  • ΠΌΠ΅Ρ‚ΠΎΠ΄ распространСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², особСнно Π² тСхнологиях ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ COM ΠΈ CORBA;
  • ΠΌΠ΅Ρ‚ΠΎΠ΄ обнаруТСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ.

Для Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивного использования этих возмоТностСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. НапримСр, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎ Π²ΠΎΡΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ сСриализованный ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, нСзависимо ΠΎΡ‚ порядка Π±Π°ΠΉΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простая ΠΈ быстрая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° прямого копирования участка памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ размСщаСтся структура Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎ для всСх Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€. БСриализация структур Π΄Π°Π½Π½Ρ‹Ρ… Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎ-нСзависимый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ порядка слСдования Π±Π°ΠΉΡ‚, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² распрСдСлСния памяти ΠΈΠ»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ прСдставлСния структур Π΄Π°Π½Π½Ρ‹Ρ… Π² языках программирования.

Π›ΡŽΠ±ΠΎΠΉ ΠΈΠ· схСм сСриализации присущС Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ, ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ любой части сСриализованной структуры Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вСсь ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±Ρ‹Π» считан ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈ воссоздан. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… прилоТСниях такая Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простыС интСрфСйсы Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния для сохранСния ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ прилоТСниях, Π³Π΄Π΅ Π²Π°ΠΆΠ½Π° высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ, Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ хранСния Π΄Π°Π½Π½Ρ‹Ρ….

БСриализация массива Π² PHP

Π’ PHP массив сСриализируСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ serialize($array), Π³Π΄Π΅ $array — это массив, Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ — тСкстовая строка. ПослС этого строку ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π² массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ unserialize($string), Π³Π΄Π΅ — $string — сСриализированный массив (строка), Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ — Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ массив.

БСриализация Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Для Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… большой ΠΎΠ±ΡŠΡ‘ΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΎΡ‚ спутников, ΠΈΠ»ΠΈ числСнныС ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠ»ΠΈΠΌΠ°Ρ‚Π°, ΠΏΠΎΠ³ΠΎΠ΄Ρ‹ ΠΈ ΠΎΠΊΠ΅Π°Π½ΠΎΠ², Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ стандарты сСриализации, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ HDF, netCDF ΠΈ Π±ΠΎΠ»Π΅Π΅ старый GRIB.

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

Бсылки

сСриализация — это… Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСриализация?

  • БСриализация β€” (Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ) процСсс ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ². ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сСриализации являСтся опСрация дСсСриализации (структуризации) восстановлСниС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ состояния структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· битовой… … Β  ВикипСдия

  • сСриализация Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ β€” ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ исполнСния мноТСства ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² Π‘Π£Π‘Π” с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ΄ΠΎΡΡ‚ΡƒΠΏΠΎΠΌ Π½Π° основС расписания, эквивалСнтного ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ. ΠŸΡ€ΠΈ этом исполнСниС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ мноТСства Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ ТС… … Β  Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ тСхничСского ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°

  • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ β€” Π‘ самого Π½Π°Ρ‡Π°Π»Π° ΠŸΠΈΡ‚ΠΎΠ½ проСктировался ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования [1]. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ 1 Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ 1.1 ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ООП … Β  ВикипСдия

  • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python β€” ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° PythonΒ  ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python с использованиСм ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ ООП: с самого Π½Π°Ρ‡Π°Π»Π° Python проСктировался ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования[1]. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ 1 Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ 1.1 … Β  ВикипСдия

  • Remote Procedure Call β€” Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ (ΠΈΠ»ΠΈ Π’Ρ‹Π·ΠΎΠ² ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€) (ΠΎΡ‚ Π°Π½Π³Π». Remote Procedure Call (RPC))Β  класс Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ адрСсном пространствС (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π° удалённых… … Β  ВикипСдия

  • ΠœΠ°Ρ€ΡˆΠ°Π»ΠΈΠ½Π³ β€” (ΠΎΡ‚ Π°Π½Π³Π».Β marshalΒ  ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°Ρ‚ΡŒ), ΠΏΠΎ смыслу ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅Β  процСсс прСобразования прСдставлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² памяти Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΉ для хранСния ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ примСняСтся, ΠΊΠΎΠ³Π΄Π° данныС… … Β  ВикипСдия

  • Бписок Π³Π»Π°Π² ΠΌΠ°Π½Π³ΠΈ Love Hina β€” Основная ΡΡ‚Π°Ρ‚ΡŒΡ: Love Hina Японская ΠΎΠ±Π»ΠΎΠΆΠΊΠ° для 1Π³ΠΎ Ρ‚ΠΎΠΌΠ° Love Hina это ΠΌΠ°Π½Π³Π° сСрия написанная ΠΈ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ Кэном Акамацу. Π­Ρ‚Π° сСрия ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π°ΡΡŒ Π² Weekl … Β  ВикипСдия

  • Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ β€” (ΠΈΠ»ΠΈ Π’Ρ‹Π·ΠΎΠ² ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€) (ΠΎΡ‚ Π°Π½Π³Π».Β Remote Procedure Call (RPC))Β  класс Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ адрСсном пространствС (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ,… … Β  ВикипСдия

  • Python β€” Π£ этого Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния, см. Python (значСния). Python Класс языка: ΠΌΡƒ … Β  ВикипСдия

  • One Piece β€” ОблоТка ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‚ΠΎΠΌΠ° Β«One PieceΒ». ワンピース (Π’Π°Π½ ΠŸΠΈΡΡƒ) Π–Π°Π½Ρ€ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, комСдия … Β  ВикипСдия

  • Hibernate (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°) β€” Π£ этого Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния, см. Hibernate. Hibernate Π’ΠΈΠΏ Object Relational Mapping Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Red Hat Написана Π½Π° Java … Β  ВикипСдия

  • БСриализация ΠΈ агрСгация

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСриализация ΠΈ агрСгация?

    БСриализация β€” это присвоСниС ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ случайного Π½ΠΎΠΌΠ΅Ρ€Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ пСрСдвиТСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Ρ‚ΠΎΠ²Π°Ρ€Π°.

    АгрСгация β€” объСдинСниС экзСмпляров Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ Π² Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΡƒΡŽ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΡƒ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π³ΠΎΡ„Ρ€ΠΎΠΊΠΎΡ€ΠΎΠ±Π° с ΡˆΡ‚Ρ€ΠΈΡ…ΠΊΠΎΠ΄ΠΎΠΌ стандарта GS1. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½ΠΎΠΉ систСмы, ΠΊΠΎΡ€ΠΎΠ±Π°, ΠΏΠ°Π»Π»Π΅Ρ‚Ρ‹ с присвоСниСм сСрийного Π½ΠΎΠΌΠ΅Ρ€Π°. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· 20 ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов.

    ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€?

    Π—Π° послСдниС 2 Π³ΠΎΠ΄Π° Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ России Π±Ρ‹Π»ΠΎ выявлСно ΡΠ²Ρ‹ΡˆΠ΅ 6 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π΅Π΄ΠΈΠ½ΠΈΡ† поддСльной ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ. (Π”Π°Π½Π½Ρ‹Π΅ ΠœΠΈΠ½ΠΏΡ€ΠΎΠΌΡ‚ΠΎΡ€Π³Π°) ПоддСлки становятся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, Π½ΠΎ ΠΈ для ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ. Одни Ρ‚Π΅Ρ€ΡΡŽΡ‚ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π·Π° свои дСньги ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ‚ΠΎΠ²Π°Ρ€ ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ качСства (ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΡƒΠ±Ρ‹Ρ‚ΠΊΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° счСт нСдополучСния прямой ΠΏΡ€ΠΈΠ±Ρ‹Π»ΠΈ, Π½ΠΎ ΠΈ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊΠ°ΠΊ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, нСвосполнимы).

    Π˜Ρ‚ΠΎΠ³ΠΈ экспСримСнта Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄Π²Π΅Π΄Π΅Π½Ρ‹ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ Π³ΠΎΠ΄Π°, Π° с ΠΌΠ°Ρ€Ρ‚Π° 2019 Π³ΠΎΠ΄Π° нанСсСниС ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° Ρ‚Π°Π±Π°Ρ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡŽ стало ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для всСх участников ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π°.

    НанСсСниС Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ позволяСт этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π΅: Π½Π°Π·Π²Π°Π½ΠΈΠ΅ прСдприятия-изготовитСля, мСсто, Π΄Π°Ρ‚Ρƒ ΠΈ врСмя производства ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ, срок годности, Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ», Π½ΠΎΠΌΠ΅Ρ€ стандарта.

    Π”Π°Π½Π½Ρ‹Π΅ хранятся Π² государствСнной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС β€œΠ§Π΅ΡΡ‚Π½Ρ‹ΠΉ знак”. ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° сниТаСт распространСниС всСх Π²ΠΈΠ΄ΠΎΠ² нСлСгальной ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ: ΠΊΠΎΠ½Ρ‚Ρ€Π°Ρ„Π°ΠΊΡ‚Π°, Ρ„Π°Π»ΡŒΡΠΈΡ„ΠΈΠΊΠ°Ρ‚Π°, ΠΊΠΎΠ½Ρ‚Ρ€Π°Π±Π°Π½Π΄Ρ‹ ΠΈ ΠΏΡ€ΠΎΡ‡.

    Как Videojet ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ с ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ?

    ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅Β Videojet прСкрасно справляСтся с Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² комплСксных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΏΠΎ сСриализации ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ.

    Для Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ сСриализации ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ наши Π»Π°Π·Π΅Ρ€Ρ‹ Videojet 3140 ΠΈΠ»ΠΈ Videojet 3340, Π»ΠΈΠ±ΠΎ наши тСрмоструйныС ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Ρ‚ΠΎΡ€Ρ‹ 8520 (Π° для фармацСвтичСских Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Wolke m610 OEM).

    Под Π·Π°Π΄Π°Ρ‡ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ наши ΡƒΠ»ΡŒΡ‚Ρ€Π°Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅Β ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹-Π°ΠΏΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹Β Videojet 9550, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚, ΠΈ наносят этикСтки Π½Π° Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΡƒΡŽ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΡƒ. Π‘ этих этикСток ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ машинного зрСния ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Π΅Π΅ Π½Π° сСрвСр.

    Если Ρƒ вас Π΅ΡΡ‚ΡŒ запрос Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ сСриализации ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ скачайтС Π½Π°ΡˆΒ ΠΎΠΏΡ€ΠΎΡΠ½Ρ‹ΠΉ лист, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ (ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅) ΠΈ Π²Ρ‹ΡˆΠ»ΠΈΡ‚Π΅ Π½Π° [email protected]. Наши ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ ΠΈ свяТутся с Π²Π°ΠΌΠΈ Π² ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠ΅ сроки.

    Если Ρƒ Вас Π΅Ρ‰Π΅ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ вопросы ΠΈΠ»ΠΈ Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ приобрСсти ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π²ΠΎΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρƒ 800 234-33-04!

    ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ коммСрчСскоС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Π’Π°ΡˆΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅.
    ΠžΠ±Ρ€Π°Π·Ρ†Ρ‹ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π’Π°ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ ΠΌΡ‹ сдСлаСм бСсплатно.

    Β 

    XML-cСриализация Π΄Π°Π½Π½Ρ‹Ρ… Π² .NET. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ XML-сСриализация?

    БСриализация β€” это процСсс прСобразования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ„ΠΎΡ€ΠΌΡƒ, которая ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎ сСти с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ HTTP-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСром ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. Или, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, воссоздав Π΅Π³ΠΎ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ°.

    Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ± XML-сСриализации, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π΅ΠΉ Π² XML-ΠΏΠΎΡ‚ΠΎΠΊ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ лишь значСния свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ поля. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈ XML-сСриализации информация ΠΎ Ρ‚ΠΈΠΏΠ΅ Π½Π΅ учитываСтся. Допустим, Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Book, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² пространствС ΠΈΠΌΡ‘Π½ Library. ΠŸΡ€ΠΈ этом Π½Π΅ сущСствуСт Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ смоТСт Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: XML-сСриализация Π½Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, индСксаторы, Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ поля ΠΈΠ»ΠΈ read-only свойства (ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ для чтСния). Для XML-сСриализации всСх свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠΎΠ»Π΅ΠΉ (ΠΊΠ°ΠΊ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ…), примСняйтС вмСсто XML-сСриализации DataContractSerializer.

    XML-cСриализация. Класс XmlSerializer

    Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ класс XML-сСриализации β€” это XmlSerializer, Π° самыС Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Π΄Π°Π½Π½ΠΎΠΌ классС β€” это Deserialize ΠΈ Serialize. XmlSerializer слуТит для создания Ρ„Π°ΠΉΠ»ΠΎΠ² C#, компилируя ΠΈΡ… Π² DLL-Ρ„Π°ΠΉΠ»Ρ‹ для выполнСния сСриализации. Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ .NET инструмСнт создания XML-сСриализатора (Sgen.exe) обСспСчиваСт созданиС Ρ‚Π°ΠΊΠΈΡ… сборок XML-сСриализации Π·Π°Π±Π»Π°Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² процСссС запуска. XML-ΠΏΠΎΡ‚ΠΎΠΊ, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ XmlSerializer, совмСстим с консорциумом World Wide Web Consortium (W3C).

    Для описания Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ конструкции языка программирования (классы, поля, свойства, Ρ‚ΠΈΠΏΡ‹ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², массивы ΠΈ Π΄Π°ΠΆΠ΅ встроСнныС XML Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² XmlAttribute Π»ΠΈΠ±ΠΎ XmlElement). МоТно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои классы, Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнт опрСдСлСния схСмы XML Π² цСлях создания классов Π½Π° основании ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ схСмы XML.

    Если Π΅ΡΡ‚ΡŒ Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ схСма XML, Π²Ρ‹ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ запуститС инструмСнт опрСдСлСния схСмы XML ΠΈ смоТСтС ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ классов, Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… строгий Ρ‚ΠΈΠΏ схСмы. Π’ΠΎ врСмя XML-сСриализации экзСмпляра этого класса созданный XML Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ схСмС XML. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ класса ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, примСняя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ модСль, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»Π΅Π³ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, Π½ΠΎ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ созданный XML соотвСтствуСт схСмС XML. Π­Ρ‚ΠΎ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ примСнСния Π΄Ρ€ΡƒΠ³ΠΈΡ… классов Π² .NET Framework для выполнСния Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ записи Π² ΠΏΠΎΡ‚ΠΎΠΊ XML, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, классов XmlWriter ΠΈ XmlReader (классы Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ любой XML-ΠΏΠΎΡ‚ΠΎΠΊ). Если ΠΆΠ΅ прСдполагаСтся, Ρ‡Ρ‚ΠΎ XML-ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ извСстной схСмС XML, Π»ΡƒΡ‡ΡˆΠ΅ сразу ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ XmlSerializer.

    XML-ΠΏΠΎΡ‚ΠΎΠΊ, созданный классом XmlSerializer, управляСтся Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° элСмСнта ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° XML, пространство XML-ΠΈΠΌΡ‘Π½ ΠΈ Ρ‚. ΠΏ. Класс XmlSerializer способСн ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, создавая XML-ΠΏΠΎΡ‚ΠΎΠΊ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ SOAP. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, XmlSerializer создаёт SOAP-сообщСния, сформированныС ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²Π΅Π±-слуТбы XML. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ SOAP-сообщСниями, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ значСниям, классам, полям ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌ Π² Ρ„Π°ΠΉΠ»Π΅ Π²Π΅Π±-слуТбы XML (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, это Ρ„Π°ΠΉΠ» ASMX).

    Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² пСрСчнях «Атрибуты управлСния XML-сСриализациСй» ΠΈ «Атрибуты управлСния сСриализациСй с SOAP-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉΒ», вСдь Π²Π΅Π±-слуТба XML примСняСт ΠΈΠ»ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ, ΠΈΠ»ΠΈ ΡΡ‚ΠΈΠ»ΡŒ с SOAP-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ.

    Вопросы бСзопасности ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ прилоТСниям с XmlSerializer

    Когда создаётся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ XmlSerializer, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ рядС особСнностСй ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСроятных послСдствиях:

    1.XmlSerializer, создавая Ρ„Π°ΠΉΠ»Ρ‹ C# (CS), ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… Π² DLL-Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π½Π°Π·Π²Π°Π½Π½ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды TEMP. Благодаря DLL-Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ происходит XML-сСриализация.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ρ‚Π°ΠΊΠΈΠ΅ сборки XML-сСриализации Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π°Π±Π»Π°Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, подписывая ΠΈΡ… посрСдством SGen.exe. Но этот способ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΊ использованию Π½Π° сСрвСрС web-слуТб. Π˜Π½Π°Ρ‡Π΅ говоря, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ лишь для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ для выполнСния XML-сСриализации Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

    DLL-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠΎΠ΄ уязвимы для врСдоносных процСссов Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΡ… создания ΠΈ компиляции. На ПК с Microsoft Windows NT (4.0 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ вСрсии) 2 Π»ΠΈΠ±ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ совмСстным доступом ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ TEMP. Π­Ρ‚ΠΎ нСсёт ΡƒΠ³Ρ€ΠΎΠ·Ρƒ, Ссли Ρƒ 2-Ρ… ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… записСй прописаны Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ бСзопасности, Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся с использованиСм XmlSerializer ΠΈΠ· Ρ‚ΠΎΠΉ ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записи, которая ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ высокиС ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. Π’ этом случаС ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· ΡŽΠ·Π΅Ρ€ΠΎΠ² способСн Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ПК, Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» DLL, ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» CS. Для устранСния уязвимости ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΡ‡Ρ‘Ρ‚ΠΊΠ΅ Π½Π° ПК Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ. ΠŸΡ€ΠΈ этом ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ пСрСмСнная срСды TEMP ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записи.

    2.Если Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ осущСствляСт ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° XML-Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π²Π΅Π±-сСрвСр (Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎΠ± Π°Ρ‚Π°ΠΊΠ΅ Ρ‚ΠΈΠΏΠ° Β«ΠΎΡ‚ΠΊΠ°Π· Π² обслуТивании»), Ρ‚ΠΎ XmlSerializer ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π° эту ΡΠ°ΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Ρ‹ всС рСсурсы систСмы.

    Π”Π°Π½Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Π°Ρ‚Π°ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ПК, Π³Π΄Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ слуТбы Internet Information Services (IIS), Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π² срСдС IIS. Π’ IIS-слуТбах примСняСтся логичСский элСмСнт. Он Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ значСния (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 4 Кб). Если ΠΆΠ΅ создаётся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ IIS-слуТбы ΠΈ выполняСт XML-ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ посрСдством XmlSerializer, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ схоТий логичСский элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ‚Π°ΠΊΠΈ.

    3.XmlSerializer сСриализуСт Π΄Π°Π½Π½Ρ‹Π΅, запуская ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ любого ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΠΌΡƒ Ρ‚ΠΈΠΏΠ°.
    Π—Π΄Π΅ΡΡŒ врСдоносный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ опасным Π² 2-Ρ… случаях. НапримСр, Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ запуск врСдоносного ΠΊΠΎΠ΄Π° Π»ΠΈΠ±ΠΎ Π²Π²ΠΎΠ΄ Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ» C#, сформированный XmlSerializer. Π’ случаС запуска, Ссли врСдоносный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ попытаСтся Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс, систСма управлСния доступом для ΠΊΠΎΠ΄Π° ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ поврСТдСния. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ минимальна, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠ΅Ρ€Ρ‹ прСдостороТности Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°ΡŽΡ‚. НапримСр, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ стоит ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ нСизвСстного Ρ‚ΠΈΠΏΠ°.

    4.Π‘Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ‹Π²Π°ΡŽΡ‚ уязвимы.
    ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ XmlSerializer сСриализовал Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π² XML-Ρ„Π°ΠΉΠ»Π΅ Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Когда Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ доступно для ΠΏΡ€ΠΎΡ‡ΠΈΡ… процСссов ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π²ΠΈΠ΄Π½ΠΎ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅/интрасСти, Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΡ€Π°ΡΡ‚ΡŒ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΊΠΎΠ³Π΄Π° создаётся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅Π΅ Π·Π°ΠΊΠ°Π·Ρ‹ с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚, эти ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ вСсьма Π²Π°ΠΆΠ½Ρ‹. А Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈΡ… Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ΅ использованиС, Π·Π°Ρ‰ΠΈΡ‰Π°ΠΉΡ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ€Ρ‹, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ.

    БСриализация простого класса

    Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° участок ΠΊΠΎΠ΄Π° с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ:

    Public Class OrderForm
        Public OrderDate As DateTime
    End Class
    public class OrderForm
    {
        public DateTime OrderDate;
    }
    

    Если ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ XML-ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ экзСмпляра Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса, процСсс Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

    <OrderForm>
        <OrderDate>12/12/01</OrderDate>
    </OrderForm>
    

    КакиС элСмСнты ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ XmlSerializer, Π²Ρ‹ смоТСтС ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ:
    β€” ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ свойства чтСния/записи, Π° Ρ‚Π°ΠΊΠΆΠ΅ поля ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… классов;
    β€” классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ IEnumerable Π»ΠΈΠ±ΠΎ ICollection.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: XML-сСриализации ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‚ лишь ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ свойства:
    β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ XmlElement;
    β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ DataSet;
    β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ XmlNode.

    ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° XML-сСриализации

    XmlSerializer обСспСчиваСт Π³ΠΈΠ±ΠΊΠΎΠ΅ ΠΈ всСстороннСС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ XML-сСриализациСй ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ΠΎ врСмя создания Π²Π΅Π±-слуТб XML ΠΊ классам ΠΈ Ρ‡Π»Π΅Π½Π°ΠΌ Π²Ρ‹ смоТСтС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ сСриализациСй. Π­Ρ‚ΠΎ дСлаСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ XML-Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ схСмС.

    Допустим, XmlSerializer позволяСт:
    β€” ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, слСдуСт Π»ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ Π»ΠΈΠ±ΠΎ свойство Π² качСствС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΈΠ»ΠΈ элСмСнта;
    β€” ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ пространство XML-ΠΈΠΌΠ΅Π½;
    β€” ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ имя элСмСнта Π»ΠΈΠ±ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, ΠΊΠΎΠ³Π΄Π° имя поля Π»ΠΈΠ±ΠΎ свойства Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹.

    ΠžΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ плюс XML-сСриализации β€” это отсутствиС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ для создаваСмых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, вСдь создаваСмый XML-ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ схСмС. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π΅ΡΡ‚ΡŒ схСма, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°ΡΡΡ для описания ΠΊΠ½ΠΈΠ³. Π’ Π½Π΅ΠΉ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты, ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΡ€, Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ, Π½ΠΎΠΌΠ΅Ρ€ ISBN. Π’Ρ‹ смоТСтС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ XML-Π΄Π°Π½Π½Ρ‹Π΅ Π»ΡŽΠ±Ρ‹ΠΌ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ способом. ЕдинствСнным Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² любом случаС Π±ΡƒΠ΄Π΅Ρ‚ соотвСтствиС XML-ΠΏΠΎΡ‚ΠΎΠΊΠ° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ схСмС языка опрСдСлСния XML-схСмы (XSD).

    Вопросы, связанныС с XML-сСриализациСй

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ XmlSerializer, ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ряд аспСктов:
    β€” инструмСнт Sgen.exe ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ лишь для создания сборок XML-сСриализации, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈ обСспСчСнии ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ;
    β€” XML-сСриализованныС Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСпосрСдствСнно сами Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ структуру классов. ΠŸΡ€ΠΈ этом информация ΠΎ сборкС ΠΈ удостовСрСния Ρ‚ΠΈΠΏΠ° Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ;
    β€” ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСльзя;
    β€” ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ свойства ΠΈ поля, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ для свойств Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа (get ΠΈ set). Когда Π½ΡƒΠΆΠ½ΠΎ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½Π΅ XML-ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π° класс DataContractSerializer;
    β€” Π² классС Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, сСриализуСмый посрСдством XmlSerializer;
    β€” XmlSerializer способСн ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ICollection Π»ΠΈΠ±ΠΎ IEnumerable, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ трСбованиям (ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π½ΠΈΠΆΠ΅).

    Класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ IEnumerable, Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Add-ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ 1 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. ΠŸΡ€ΠΈ этом ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Add Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ возвращаСтся ΠΈΠ· свойства IEnumerator.Current, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, возвращаСтся ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GetEnumerator.

    Класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ICollection, Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ IEnumerable, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ индСксированноС свойство ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Item (индСксатор Π² C#), ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π΅ Ρ†Π΅Π»ΠΎΠ΅ число. Π’Π°ΠΊΠΆΠ΅ класс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ свойство Count Ρ‚ΠΈΠΏΠ° integer. ΠŸΡ€ΠΈ этом ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаётся ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Add, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ самого Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ ΠΈΠ· свойства Item, Π»ΠΈΠ±ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π±Π°Π· Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°.

    Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ классах, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… ICollection, Ρ‚ΠΎ для Π½ΠΈΡ… сСриализуСмыС значСния ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСксированного свойства Item, Π½ΠΎ Π½Π΅ ΠΏΡƒΡ‚Ρ‘ΠΌ Π²Ρ‹Π·ΠΎΠ²Π° GetEnumerator. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊ этому, свойства ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ поля Π½Π΅ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΎΠΉ класс ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ICollection).

    БопоставлСниС Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… XSD

    Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ W3C XML Schema Part 2: Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… прописаны простыС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, допускаСмыС Π² схСму языка опрСдСлСния XML-схСмы. Для большСй части ΠΈΠ· Π½ΠΈΡ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, decimal ΠΈ int) Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ .NET. прСдусмотрСн ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Но для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² XML-Π΄Π°Π½Π½Ρ‹Ρ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ Π½Π΅ прСдусмотрСн (допустим для NMTOKEN). Π’ этом случаС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнт опрСдСлСния XML-схСмы (Xsd.exe) для формирования классов ΠΈΠ· схСмы, ΠΊ Ρ‡Π»Π΅Π½Ρƒ строкового Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, Π° Π΅Π³ΠΎ свойство DataType задаётся Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ° XML-Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ схСма содСрТит элСмСнт Β«MyTokenΒ» с Ρ‚ΠΈΠΏΠΎΠΌ XML-Π΄Π°Π½Π½Ρ‹Ρ… NMTOKEN:

    <XmlElement(DataType:="NMTOKEN")> _
    Public MyToken As String
    [XmlElement(DataType = "NMTOKEN")]
    public string MyToken;
    

    Аналогично ΠΌΡ‹ дСйствуСм, создавая класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ XML-схСмС (XSD). ΠœΡ‹ примСняСм ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, задавая Π΅Π³ΠΎ свойство DataType Π² качСствС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ° XML-Π΄Π°Π½Π½Ρ‹Ρ….

    1Π‘: БСриализация Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘

    Π­Ρ‚Ρƒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ тСхничСскиС ΡΡ‚Π°Ρ‚ΡŒΠΈ написали наши программисты 1Π‘ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π·Π° Π½ΠΈΡ… ΠΏΡ€Π΅ΠΌΠΈΠΈ. Если Π²Ρ‹ Ρ‚ΠΎΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с 1Π‘ ΠΈ Π»ΡŽΠ±ΠΈΡ‚Π΅ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Π² Neti β†’

    Β 

    Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ сСриализации Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘.

    А сСйчас Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ самом ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ: БСриализация (Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ)Β β€” процСсс ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠ°ΠΊΠΎΠΉ-либо структуры Π΄Π°Π½Π½Ρ‹Ρ…Β Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΒ Π±ΠΈΡ‚ΠΎΠ². ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сСриализации являСтся опСрация дСсСриализации (структуризации)Β β€” восстановлСниС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ состояния структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

    Когда Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния, для дальнСйшСго Π΅Π³ΠΎ хранСния ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, Π² этом случаС Π½Π°ΠΌ Π±Π΅Π· Π½Π΅Π΅ Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ, Π½ΠΎ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сСриализация Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° для Ρ‚Π΅Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² 1Π‘, Π² описании ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ° β€œΠ‘Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ΡΡβ€.

    Π£Ρ‚ΠΎΡ‡Π½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ сСрилиазация ΠΌΠΎΠΆΠ΅Ρ‚ примСнятся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ‹, Π½ΠΎ ΠΈ ΠΎ XML – сСриализация. ПослСдняя являСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΈ примСняСтся ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

    Для Π½Π°Ρ‡Π°Π»Π°, рассмотрим ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ‹.
    Для сохранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²ΠΎ врСмя сСанса Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π˜Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹Β  Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π’Π€Π°ΠΉΠ»() ΠΈ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π˜Π·Π€Π°ΠΉΠ»Π°().

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

    
    Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π’Π€Π°ΠΉΠ»()
    ΠŸΡƒΡ‚ΡŒ = "D:\1с\ВСстЀайл.txt";
    ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°
     Β Β  Если Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π’Π€Π°ΠΉΠ»(ΠŸΡƒΡ‚ΡŒ, Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ) Π’ΠΎΠ³Π΄Π°
     Β Β Β Β Β Β  ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅("Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°!");
     Β Β  Π˜Π½Π°Ρ‡Π΅
     Β Β Β Β Β Β Β  ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅("Π’ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅!");
    ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;
    Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  
     Β Β  ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅("Π’ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅! "+ОписаниСОшибки());
    ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;
    

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

    
    Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π˜Π·Π€Π°ΠΉΠ»Π° ()
    ИмяЀайла = Новый Π€Π°ΠΉΠ»(Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉΠ€Π°ΠΉΠ»);
    Если ИмяЀайла.БущСствуСт() Π’ΠΎΠ³Π΄Π°
    Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ = Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π˜Π—Π€Π°ΠΉΠ»Π°(Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉΠ€Π°ΠΉΠ»);
    ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;
    

    Если ΠΆΠ΅ Π½Π°ΠΌ трСбуСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ сСансами, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅() ΠΈ Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅(), Π½ΠΎ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅,  Ссли Π²Π΄Ρ€ΡƒΠ³ ΠΏΠΊ Π±ΡƒΠ΄Π΅Ρ‚ обСсточСн, Ρ‚ΠΎ значСния Π½Π΅ сохранятся. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ сохранСнии Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Ρ‚ΠΈΠΏΠ° Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ, ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для Π½ΠΈΡ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

    
    Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅()
     Β Β Β Β Β Β Β Β Β Β Β Β Β Β  //Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ поля Ρ‚ΠΈΠΏΠ° Π΄Π°Ρ‚Π°
    Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅("ΠΠ°Ρ‡Π°Π»ΠΎΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π°",Β  ΠΠ°Ρ‡Π°Π»ΠΎΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π°);Β Β Β Β  
     Β Β Β Β Β Β Β Β Β Β Β Β Β Β  //Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ссылочного поля
    Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅("ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚",Β  ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚);Β Β  
     Β Β Β Β Β Β Β Β Β Β Β Β Β Β  //Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части
    Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅("Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ", Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ());
    

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

    
    Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅()
     Β Β Β Β Β Β Β Β Β Β Β Β Β Β  //ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ значСния сохранСнных ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²
    Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΠ°Ρ‡Π°Π»ΠΎΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π° = Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅("ΠΠ°Ρ‡Π°Π»ΠΎΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π°");
    Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ = Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅("ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚");
    Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ = Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅("Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ");
     Β Β Β Β Β Β Β Β Β Β Β Β Β Β  //ВосстанавливаСм значСния Ρ‡Π΅Ρ€Π΅Π· Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Ρ‚ΠΈΠΏΠ°
     Β Β Β Β Β Β Β Β Β Β Β Β Β Β  //ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния
    Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΠ°Ρ‡Π°Π»ΠΎΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π°, ΠΠ°Ρ‡Π°Π»ΠΎΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π°);
    Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚, ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚);
    Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ, Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ);
    ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹
    
    
    ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅(Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)
     Β Β  Если БохранСнноСЗначСниСНСопрСдСлСно Π’ΠΎΠ³Π΄Π°
     Β Β Β Β Β Β  Если Π’ΠΈΠΏΠ·Π½Ρ‡(Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) = Π’ΠΈΠΏ("Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ") Π’ΠΎΠ³Π΄Π°
    Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ(Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);
     Β Β Β Β Β Β  Π˜Π½Π°Ρ‡Π΅Β Β Β 
     Β Β Β Β Β Β Β Β Β Β  Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅;
    ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;Β Β  
    ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;
    ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹
    

    Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния Π² строку ΠΈ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ значСния ΠΈΠ· строки, Ρ‚ΠΎ для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π’Π‘Ρ‚Ρ€ΠΎΠΊΡƒΠ’Π½ΡƒΡ‚Ρ€() ΠΈ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π˜Π·Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ’Π½ΡƒΡ‚Ρ€(). Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² основном для сохранСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ совмСстимости с 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ΠΌ 7.7. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π½Π΅ рСкомСндуСтся. Для сохранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, описанный Π²Ρ‹ΡˆΠ΅, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Π₯ранилищСЗначСния, Π° для получСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ строкового ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ссылочного значСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ получСния ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ссылки (ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€()) ΠΈ соотвСтствСнно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΊ строкС.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

    
    Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π’Π‘Ρ‚Ρ€ΠΎΠΊΡƒΠ’Π½ΡƒΡ‚Ρ€()
    БсылкаВВидСБтроки = Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π’Π‘Ρ‚Ρ€ΠΎΠΊΡƒΠ’Π½ΡƒΡ‚Ρ€(Π‘ΡΡ‹Π»ΠΊΠ°ΠΠ°ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ);
    Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π’Π’ΠΈΠ΄Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ = Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π’Π‘Ρ‚Ρ€ΠΎΠΊΡƒΠ’Π½ΡƒΡ‚Ρ€(Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡΠ‘ΡΡ‹Π»ΠΊΠ°,ΠšΠΎΠ΄ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ", Π‘ΡΡ‹Π»ΠΊΠ°ΠΠ°ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ,Π‘ΡΡ‹Π»ΠΊΠ°ΠΠ°ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ.Код))/pre>
    

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

    
    Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π˜Π·Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ’Π½ΡƒΡ‚Ρ€ ()
    Π‘ΡΡ‹Π»ΠΊΠ°ΠΠ°ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ= Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π˜Π·Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ’Π½ΡƒΡ‚Ρ€(БсылкаВВидСБтроки);
    Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π˜Π·Π‘Ρ‚Ρ€ΠΎΠΊΠΈ = Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π˜Π·Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠ’Π½ΡƒΡ‚Ρ€(Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π’Π’ΠΈΠ΄Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ);
    Если Π’ΠΈΠΏΠ·Π½Ρ‡(Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π˜Π·Π‘Ρ‚Ρ€ΠΎΠΊΠΈ) = Π’ΠΈΠΏ("Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°") Π’ΠΎΠ³Π΄Π°
     Β Β Β Β Β Β Β Β Β Β Β Β Β Β  Π‘ΡΡ‹Π»ΠΊΠ°ΠΠ°ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ = Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π˜Π·Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡΠ‘ΡΡ‹Π»ΠΊΠ°;
     Β Β Β Β Β Β Β Β Β Β Β Β Β Β  ΠšΠΎΠ΄ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ = Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π˜Π·Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.ΠšΠΎΠ΄ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ;
    ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;
    

    А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ XML–сСриализации.

    Рассмотрим ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² xml, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго.

    Π•ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒXML() ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для этого.

    Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ значСния Π½Π΅ всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ записаны Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ XML Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ.ДоступныС для записи Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… дСлятся Π½Π° Π½Π° Π΄Π²Π° Ρ‚ΠΈΠΏΠ°: простыС ΠΈ слоТныС.

    К простым Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… относятся Ρ‚ΠΈΠΏΡ‹, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ подсистСмой XML-сСриализации Π² Π²ΠΈΠ΄Π΅ элСмСнтов XML Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с тСкстовым содСрТимым:

    К ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ относятся:

    • Число;
    • Π‘Ρ‚Ρ€ΠΎΠΊΠ°;
    • Π”Π°Ρ‚Π°;
    • Π‘ΡƒΠ»Π΅Π²ΠΎ;
    • Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅;
    • Null;
    • Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€;
    • Π₯ранилищСЗначСния;
    • всС ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…;
    • ссылки Π½Π° пСрСчислСния, опрСдСляСмыС Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

    ЗначСния слоТных Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ элСмСнтов XML, содСрТащих Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ элСмСнты:

    • Π’ΠΈΠΏ;
    • ОписаниСВипов;
    • ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π—Π½Π°Ρ‡Π΅Π½ΠΈΡ.<имя константы>;
    • всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…;
    • Π½Π°Π±ΠΎΡ€Ρ‹ записСй рСгистров, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ, пСрСрасчСтов;
    • Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π°;

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

    
    Ѐункция ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠŸΡ€ΠΈΠΌΠ΅Ρ€XML(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)
    Π—Π°ΠΏΠΈΡΡŒΠŸΡ€ΠΈΠΌΠ΅Ρ€XML = Новый Π—Π°ΠΏΠΈΡΡŒXML;
    Π—Π°ΠΏΠΈΡΡŒΠŸΡ€ΠΈΠΌΠ΅Ρ€XML.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ();
    Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒXML(Π—Π°ΠΏΠΈΡΡŒΠŸΡ€ΠΈΠΌΠ΅Ρ€XML, Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);
    Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π—Π°ΠΏΠΈΡΡŒΠŸΡ€ΠΈΠΌΠ΅Ρ€XML.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ();
    ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    

    Для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒXML() – Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ сначала значСния Π² XDTO, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π²Ρ‹ΡˆΠ΅ описанный ΠΌΠ΅Ρ‚ΠΎΠ΄.

    Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅:

    Π£ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² XML.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

    
    Ѐункция ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠŸΡ€ΠΈΠΌΠ΅Ρ€XML(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)
    ΠžΠ±ΡŠΠ΅ΠΊΡ‚XDTO = Π‘Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€XDTO.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒXDTO(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);
    Π—Π°ΠΏΠΈΡΡŒΠŸΡ€ΠΈΠΌΠ΅Ρ€XML = Новый Π—Π°ΠΏΠΈΡΡŒXML;
    Π—Π°ΠΏΠΈΡΡŒΠŸΡ€ΠΈΠΌΠ΅Ρ€XML.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ();
    Π€Π°Π±Ρ€ΠΈΠΊΠ°XDTO.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒXML(Π—Π°ΠΏΠΈΡΡŒΠŸΡ€ΠΈΠΌΠ΅Ρ€XML, ΠžΠ±ΡŠΠ΅ΠΊΡ‚XDTO);
    Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π—Π°ΠΏΠΈΡΡŒΠŸΡ€ΠΈΠΌΠ΅Ρ€XML.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ();
    ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    

    НадСюсь, ΡΡ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π΅Π·Π½Π°. Бпасибо, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‡Π»ΠΈ.
    Β 

    БСриализация Π΄Π°Π½Π½Ρ‹Ρ…

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСриализация Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π·Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ?

    Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с самого опрСдСлСния. БСриализация — это процСсс прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ строки.Β 

    Π’.Π΅. Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ хранится Π² массивС ΠΈΠ»ΠΈ ΠΎΠ½ прСдставляСт собой Π½Π΅ΠΊΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Если провСсти процСсс сСриализации для этого Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ этот Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ прСдставим Π² Π²ΠΈΠ΄Π΅ строки ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ ΠΏΡ€Π°Π²ΠΈΠ».

    Π’ зависимости ΠΎΡ‚ примСняСмого Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ», Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½Π΅ΠΊΡƒΡŽ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ. Π­Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ» называСтся Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ.Β 

    Π§Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΈ сСриализации Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ½ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ json.Β 

    Бсылка Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ json:

    https://webkyrs.info/page/chto-takoe-json

    Π’.Π΅. Ρƒ нас Π±Ρ‹Π» массив Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΈ Π² Π½Π΅ΠΊΡƒΡŽ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку, которая ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ мСстС нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.Β 

    Но, Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π² Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку?

    Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ с тСкстовыми строками ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ практичСски любоС устройство. Если ΠΌΡ‹ прСдставляСм Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ тСкстовой строки, эту строку ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ любоС устройство (ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚). ВсС эти устройства ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ строку ΠΈ Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту строку, Ρ‚.Π΅. провСсти ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ процСсс сСриализации.

    Из тСкстовой строки ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ понятСн Π΄Π°Π½Π½ΠΎΠΌΡƒ устройству ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

    Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.Β 

    Если Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ язык программирования php, Ρ‚ΠΎ Π·Π° ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π² языкС php ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ 2 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ json_encode ΠΈ json_decode.Β 

    Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ смысл. Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ с Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ ΠΈ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ посмотрим, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этими функциями.

    БСриализация

    — Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дСсСриализация ΠΈ сСриализация Π² JSON?

    Π’ контСкстС хранСния Π΄Π°Π½Π½Ρ‹Ρ… сСриализация (ΠΈΠ»ΠΈ сСриализация) — это процСсс прСобразования структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сохранСн (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π±ΡƒΡ„Π΅Ρ€Π΅ памяти) ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· ссылка для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСти) ΠΈ рСконструирована ΠΏΠΎΠ·ΠΆΠ΅. […]

    ΠŸΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Π°Ρ опСрация, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‰Π°Ρ структуру Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· сСрии Π±Π°ΠΉΡ‚ΠΎΠ², — это дСсСриализация .

    Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: wikipedia.org

    Π’ сСриализации Python Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ прСобразования Π΄Π°Π½Π½ΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΅Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΡƒΠ»ΠΎΠ½ JSON (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Python True Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² JSON true , Π° сам ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² строку) ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. для дСсСриализации .

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ прСдставлСниями Python ΠΈ JSON, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ ΠΈΡ… логичСским значСниям. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ прСдставлСны основныС Ρ‚ΠΈΠΏΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΎΠ±ΠΎΠΈΡ… контСкстах:

    Python JSON
    Π˜ΡΡ‚ΠΈΠ½Π½ΠΎ истина
    Π›ΠΎΠΆΡŒ Π»ΠΎΠΆΠ½Ρ‹ΠΉ
    НСт null
    Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ , с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π½ΠΎΠΌΠ΅Ρ€
    str (с ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ', Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ " ΠΈ Ρ‚Ρ€ΠΎΠΉΠ½Ρ‹ΠΌΠΈ " "" ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ) строка (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ")
    Π΄ΠΈΠΊΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
    список , ΠΊΠΎΡ€Ρ‚Π΅ΠΆ массив

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

    ВстроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Python json — стандартный способ сСриализации ΠΈ дСсСриализации:

      ΠΈΠΌΠΏΠΎΡ€Ρ‚ json
    
    data = {
        'ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚': {
            "name": "" "ΠœΠΈΡΡ‚Π΅Ρ€ΠŸΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π΅ "" ",
            "муТской": Π’Π΅Ρ€Π½ΠΎ,
            'возраст': 60,
            'ΠΆΠ΅Π½Π°': Π½Π΅Ρ‚,
            'cars': ('BMW', "Audi")
        }
    }
    
    # ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ
    json_data = json.dumps (Π΄Π°Π½Π½Ρ‹Π΅, отступ = 2)
    
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (json_data)
    # {
    # "ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚": {
    # "name": "Mr. Presidente",
    # "муТской": ΠΏΡ€Π°Π²Π΄Π°,
    # «возраст»: 60,
    # "ΠΆΠ΅Π½Π°": null,
    #     "ΠΌΠ°ΡˆΠΈΠ½Ρ‹": [
    #       "BMW",
    # «Ауди»
    #]
    #}
    #}
    
    # дСсСриализация
    Restored_data = json.loads (json_data) # Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ
      

    Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: realpython.com, geeksforgeeks.org

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСриализация? — ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Π’Π΅Ρ…ΠΎΠΏΠ΅Π΄ΠΈΠΈ

    Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ сСриализация?

    БСриализация — это процСсс прСобразования ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ состоянии экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ»ΠΈ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ для сохранСния Π½Π° носитСлС ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎ сСти.

    БСриализация выполняСтся Common Language Runtime (CLR) для сохранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ состоянии ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, кСш ASP.NET) ΠΈΠ»ΠΈ постоянном Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (Ρ„Π°ΠΉΠ», Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚. Π”.), Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ для обновлСния. ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ‡Π»Π΅Π½ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ имя класса ΠΈ сборки, Π² ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ записываСтся Π² ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ процСсс прСобразования ΠΏΠΎΡ‚ΠΎΠΊΠ° Π±ΠΈΡ‚ΠΎΠ² Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ называСтся дСсСриализациСй.

    .NET framework ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сСриализации, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ XML. Двоичная сСриализация сохраняСт состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ прилоТСния, сохраняя Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠ°. БСриализация XML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ XML ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ стандарт для сСриализации Ρ‚ΠΎΠ»ΡŒΠΊΠΎ общСдоступных свойств ΠΈ ΠΏΠΎΠ»Π΅ΠΉ. Он Π½Π΅ сохраняСт Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ сСриализации Π² ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ кроссплатформСнном XML. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° прСдоставляСт мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² настройки процСсса сСриализации Π² соотвСтствии с трСбованиями прилоТСния.

    Techopedia ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ

    БСриализация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² плоских Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΌ этапС. ДостиТСниС этого Π±Π΅Π· сСриализации становится слишком ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½Ρ‹ΠΌ ошибкам ΠΈ слоТным ΠΈΠ·-Π·Π° слоТной структуры Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ — это ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° .NET прСдоставляСт для автоматичСской сСриализации всСх элСмСнтов сборки Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Π£Π΄Π°Π»Π΅Π½Π½ΠΎΠ΅ взаимодСйствиС — это концСпция, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ.ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΅Π³ΠΎ использования Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ сохранСниС состояния сСанса Π² ASP.NET, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° Π² Windows Forms ΠΈ Ρ‚. Π”. БСриализация (XML) Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² основном для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎ сСти Π±Π΅Π· ограничСния прилоТСния Π½Π° использованиС Π΄Π°Π½Π½Ρ‹Ρ….

    БСриализация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π»ΡŽΠ±Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… .NET ΠΏΡƒΡ‚Π΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Serializable Π² класс. ΠŸΠΎΠΌΠ΅Ρ‡Π°Ρ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ OptionalField для вновь Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Ρ‡Π»Π΅Π½ΠΎΠ² класса, Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ вСрсии ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ дСсСриализованы Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ошибок.ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сСриализации, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² .NET framework, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ сСриализация выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈ автоматичСски ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π³Ρ€Π°Ρ„Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ цикличСскиС ссылки.

    Π§Ρ‚ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈ ΠΊΠ°ΠΊ (Π΄Π΅) сСриализации Π² Python | by Xiaoxu Gao

    ΠšΠΠšΠžΠ’Π« популярныС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ (Π΄Π΅) сСриализации?

    Для сСриализации слоТной структуры Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сСриализации. Он ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ. БущСствуСт Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² сСриализации: тСкстовыС ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅.Как слСдуСт ΠΈΠ· названия, сСриализация Π½Π° основС тСкста — это процСсс сСриализации ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ двоичная сСриализация — Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ.

    ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

    Как Π±Ρ‹Π»ΠΎ сказано Π²ΠΎ Π²Π²ΠΎΠ΄Π½ΠΎΠΉ части, я Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ Π·Π½Π°Π» Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ сСриализациСй. ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — это способ прСобразования символов Π² Π±ΠΈΡ‚Ρ‹ с использованиСм схСмы кодирования, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ UTF-8, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ сСриализация — это Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ сохраняСт Π±ΠΈΡ‚Ρ‹ Π² Ρ„Π°ΠΉΠ», Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ отправляСт ΠΈΡ… Π² ΡΠ΅Ρ‚ΡŒ.ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ процСсса сСриализации. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… Python, я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ эту ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎΡ‚ RealPython.

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ сСриализации, Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌΠΈ тСкстовыми Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ сСриализации ΡΠ²Π»ΡΡŽΡ‚ΡΡ CSV, JSON, XML, YAML, TOML ΠΈ Ρ‚. Π”. Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ — protobuf ΠΈ Avro. Python Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ pickle, numpy ΠΈ pandas, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚.

    Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ почувствовали Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ сСриализации, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° протяТСнии всСй ΡΡ‚Π°Ρ‚ΡŒΠΈ.Допустим, Ρƒ мСня Π΅ΡΡ‚ΡŒ класс , ΡΡ‚Π°Ρ‚ΡŒΡ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Π°Π²Ρ‚ΠΎΡ€ , публикация , публикация_Π΄Π°Ρ‚Π° , Ρ‚Π΅ΠΌΡ‹ , word_count ΠΈ is_vip . Π― Ρ…ΠΎΡ‡Ρƒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояниС ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠΌ с ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΌ.

    CSV

    CSV, вСроятно, самый простой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сСриализации. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ значСния, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. Он Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для хранСния Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (плоскиС Π΄Π°Π½Π½Ρ‹Π΅). Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΎΠ½ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ структурами Π΄Π°Π½Π½Ρ‹Ρ….Π’ ΠΊΠΎΠ΄Π΅ я сначала ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ asdict ΠΈΠ· классов Π΄Π°Π½Π½Ρ‹Ρ… для прСобразования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Article Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ csv.DictWriter для записи этого словаря Π² Ρ„Π°ΠΉΠ» csv.

    ЀактичСски ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ процСсс сСриализации. Как это просто! На ΠΎΡ‡Π΅Π½ΡŒ высоком ΡƒΡ€ΠΎΠ²Π½Π΅ сСриализация — это Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ запись Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° диск, Π° дСсСриализация — это Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ.

    Но, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‚Π΅ΠΌΠ° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° , которая Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ списком, прСдставлСна ​​в Π²ΠΈΠ΄Π΅ строки Π² Ρ„Π°ΠΉΠ»Π΅ csv.Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ csv ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ плоскиС Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° трСбуСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ шаг для прСобразования строки Π² Ρ‚Π΅ΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² список. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ„Π°ΠΉΠ» csv Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅, поэтому всС интСрпрСтируСтся ΠΊΠ°ΠΊ строка, ΠΊΠ°ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ word_count . Если Π±Ρ‹ я ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» Ρ„Π°ΠΉΠ» article.csv ΠΈ распСчатал строку, я Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ словаря со всСми Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Π² строковом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

    Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, CSV-Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ значСния плоского ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½ΠΎ Π½Π΅ всСгда ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹.

    JSON

    Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ являСтся JSON. JSON - Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ для сСриализации Π΄Π°Π½Π½Ρ‹Ρ… благодаря ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌΡƒ синтаксису, совмСстимости практичСски со всСми языками программирования ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ article Π² Ρ„Π°ΠΉΠ» JSON, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ json . dump () сСриализуСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² строку Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON, Π° Π·Π°Ρ‚Π΅ΠΌ записываСт Π΅Π΅ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ„Π°ΠΉΠ»Π°. json ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ класс JSONEncoder для прСобразования Ρ‚ΠΈΠΏΠ° Python Π² Ρ‚ΠΈΠΏ JSON (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, True => true , False => false , None => null ). МоТно Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ JSONEncoder ΠΈ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹.

    Π― Π±Ρ‹ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎΡ‚ RealPython Π½Π° Ρ‚Π΅ΠΌΡƒ Π΄Π°Π½Π½Ρ‹Ρ… JSON Π² Python.

    Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, процСсс дСсСриализации Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ просто ΠΈΠ· чтСния Ρ„Π°ΠΉΠ»Π° JSON ΠΈ воссоздания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° словаря.Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, воссозданный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ исходный.

    ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ JSON являСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ, Ρ‡Π΅ΠΌ csv, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ содСрТит большС характСристик ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‡Π΅ΠΌ csv, поэтому ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Но ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с JSON Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ вСсь Ρ„Π°ΠΉΠ», Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ строки Π² CSV, Π½Π΅ оказывая слишком большого давлСния Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ.

    ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π½ΠΎ это просто Ρ‚ΠΎ, ΠΎ Ρ‡Π΅ΠΌ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ.

    Π”Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, сопоставимый с JSON, - это YAML. Π― Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» ΠΎΠ± ΠΈΡ… различиях Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅. YAML Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ….

    XML

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкстовый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ - это XML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСдставлСния Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ структурС. Он ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π²Π΅Π±-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° слуТбы. XML-Ρ„Π°ΠΉΠ» Π½Π΅ содСрТит Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΈΠΏΠ΅, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ XML-Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ схСмы, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ XSD.

    Python прСдоставляСт Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ xml.etree.ElementTree , которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ XML, Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ словаря Π² элСмСнт Π΄Π΅Ρ€Π΅Π²Π° Π½Π΅ Ρ‚Π°ΠΊ просто, ΠΊΠ°ΠΊ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π° я сам Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽ простой Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ dict2xml.

    БоотвСтствСнно, Π΅Π³ΠΎ XSD-Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт привязан ΠΊ Ρ‚ΠΈΠΏΡƒ. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ встроСнным Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ свой собствСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ xs: ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ , Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ xs: maxLength , xs: pattern ΠΈ Ρ‚. Π”.

      












    К соТалСнию, xml.etree.ElementTree Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ XSD. Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΊ / ΠΌΠ» .

    ВСрнСмся ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ дСсСриализуСм (ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ) XML-Ρ„Π°ΠΉΠ». Из-Π·Π° нСопрСдСлСнности Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта интСрпрСтируСтся Π² Python ΠΊΠ°ΠΊ строка. iterparse ΠΈΠ· cElementTree Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ большой XML-Ρ„Π°ΠΉΠ» ΠΈ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ всС Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ.

    Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, XML - это Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сСриализации Π½Π° основС схСмы.Но нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ находится Π² Ρ„Π°ΠΉΠ»Π΅ XSD, Python всСгда Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ строку. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для прСобразования Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… XML Π² Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Python трСбуСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€.

    BSON

    Π”ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ рассмотрСли 3 тСкстовых Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° сСриализации. Π—Π°Ρ‚Π΅ΠΌ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сСриализации. Π­Ρ‚ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π΅ читаСтся Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, Π½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ эффСктивно ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ хранСния Π² распрСдСлСнных систСмах.

    BSON (Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ JSON) - это двоичная сСриализация JSON-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².Как ΠΈ JSON, BSON ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ встраиваниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ массивов. BSON Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ спСцификации JSON.

    BSON Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… MongoDB. Когда Π²Ρ‹ устанавливаСтС pymongo , bson являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Бпособ кодирования ΠΈ дСкодирования с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ BSON Ρ‚Π°ΠΊ ΠΆΠ΅ прост, ΠΊΠ°ΠΊ ΠΈ JSON.

    Π—Π°ΠΏΠΈΡΡŒ BSON Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС мСста, Ρ‡Π΅ΠΌ JSON, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ содСрТит ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ записи, Ρ‚Π°ΠΊΡƒΡŽ ​​как Ρ‚ΠΈΠΏ ΠΈ Π΄Π»ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ….

    источник: http://bsonspec.org/faq.html

    Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, BSON прСдоставляСт нСсколько прСимущСств ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с использованиСм JSON:

    1. BSON ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ большС Ρ‚ΠΈΠΏΠΎΠ², Ρ‡Π΅ΠΌ JSON, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Π°ΠΉΡ‚Ρ‹ ΠΈ Π΄Π°Ρ‚Ρƒ.
    2. Записи BSON Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ благодаря Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π· чтСния всСх Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

    Avro

    Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ извСстный Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сСриализации - Avro. Avro - это Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ быстрой сСриализации Π½Π° основС схСмы.Π‘Ρ…Π΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ прСдоставлСна ​​во врСмя сСриализации ΠΈ дСсСриализации. Благодаря высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ½ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с Apache Kafka.

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

    Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ схСмы Avro для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Article .

    Avro поддСрТиваСтся Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… языках программирования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Python. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ fast-avro, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π° основС CPython. Π£Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ fast-avro Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, Ρ‡Π΅ΠΌ чистая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Python avro.

    fast-avro прСдоставляСт ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ / ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒ ΠΈ schemaless_writer / schemaless_reader . ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ вставляСт схСму Π² Ρ„Π°ΠΉΠ» .avro Π² качСствС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ - Π½Π΅Ρ‚.

    Pickle

    Π₯ΠΎΡ€ΠΎΡˆΠΎ, послС дСмонстрации Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² сСриализации я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΏΠ°Ρ€Ρƒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Python. Один ΠΈΠ· Π½ΠΈΡ… - Рассол.

    Β«Π—Π°Π»ΠΈΠ²ΠΊΠ°Β» - это процСсс, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ иСрархия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Python прСобразуСтся Π² ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ², Π° Β«Ρ€Π°ΠΏΠΏΠΎΡ€Ρ‚Β» - обратная опСрация.

    Π§Ρ‚ΠΎ касаСтся Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°Ρ€ΠΈΠ½ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π½Π΅ ΠΌΠ°Ρ€ΠΈΠ½ΠΎΠ²Π°Ρ‚ΡŒ, Π²ΠΎΡ‚ список Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Python.

    источник: https: // docs.python.org/3/library/pickle.html#what-can-be-pickled-and-unpickled

    НСобработанный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ относится ΠΊ Ρ‚ΠΈΠΏΡƒ Article ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован сразу.

    Однако, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ здСсь, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Pickle нСбСзопасСн ΠΈΠ·-Π·Π° возмоТности внСдрСния ΠΊΠΎΠ΄Π°. Π’Π°ΠΊΠΈΠ΅ инструмСнты, ΠΊΠ°ΠΊ Bandit, Π½Π΅ позволят Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ бСзопасности, поэтому Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡ‚Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… источников .

    Pandas / Numpy

    Π˜Π·Π²Π΅ΡΡ‚Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Pandas ΠΈ Numpy, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ рассолу.Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ссли DataFrame ΠΈΠ»ΠΈ np.ndarry согласованы ΠΊΠ°ΠΊ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ производитСлями ΠΈ потрСбитСлями.

    Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ большС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π½Π°ΠΌΠΈ.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСриализация? КакиС Π±Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΡ‹?

    БСриализация - это процСсс кодирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ класса Π² постоянноС ΠΈΠ»ΠΈ пСрСносимоС состояниС. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π²Π·ΡΡ‚ΡŒ слоТный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс.

    БущСствуСт Π΄Π²Π° основных Ρ‚ΠΈΠΏΠ° сСриализации:

    • Двоичная сСриализация - ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ.
    • БСриализация XML - ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΡ‚ΠΎΠΊ XML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ XML.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ любого Ρ‚ΠΈΠΏΠ° сСриализации ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² памяти, ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· сСтСвоС соСдинСниС. НапримСр, вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ слоТный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… CustomerData, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится информация ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, имя, адрСс, Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈ Ρ‚. Π”.).Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ для прСобразования Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… CustomerData Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ XML-ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ процСсса ΠΈΠ»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ» для дальнСйшСго использования. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ сСриализуСтся, Ссли ΠΎΠ½ находится Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ XML.

    ДСсСриализация - это процСсс прСобразования сСриализованного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π΅Π³ΠΎ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Ρ‹ дСсСриализуСтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΈΡ… исходный Ρ‚ΠΈΠΏ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π²Ρ‹ сСриализуСтС Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… CustomerData ΠΊΠ°ΠΊ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π²Ρ‹ дСсСриализуСтС Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… CustomerData, Π° Π½Π΅ Π² Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… OrderData.

    И .NET, ΠΈ J2EE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСниями Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСниями Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, пСрСдавая сСриализованныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ для дСсСриализации Π½Π° Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… рассматриваСтся, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ XML Π² .NET ΠΈ Java.

    Двоичная сСриализация - это процСсс принятия слоТного Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… (ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°) ΠΈ кодирования Π΅Π³ΠΎ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² постоянноС состояниС, транспортировки ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ дСкодирования (дСсСриализации) ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² исходный слоТный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ….

    И Java, ΠΈ .NET Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ сСриализатор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ любой сСриализуСмый Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ². ΠšΠ»Π°ΡΡΡ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ эту ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ просты Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

    Для Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ сСриализации ΠΊΠ°ΠΊ Π² .NET, Ρ‚Π°ΠΊ ΠΈ Π² Java Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ. Π’ .NET Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ [Serializable] ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс ISerializable. Π’ Java эквивалСнтный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ - Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ класс Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ java.io.serializable.

    К соТалСнию, сСриализаторы .NET ΠΈ Java нСсовмСстимы. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° CustomerData ΠΈΠ· сСриализатора Java прямо Π² Π²Π΅Ρ€ΡΠΈΡŽ .NET ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π”Π°ΠΆΠ΅ Ссли Π±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ, Π²Π°ΠΌ всС Ρ€Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ .NET Framework ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, созданный сСриализатором Java. Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π° .NET ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ эквивалСнтного Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… CustomerData для ΠΏΡ€ΠΈΠ΅ΠΌΠ° дСсСриализованного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° CustomerData со стороны Java.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ для связывания .NET с Java, Ссли ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ срСдство форматирования выполняСт ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π€ΠΎΡ€ΠΌΠ°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈΠ· Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ‚ΠΎΡ‡Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈ восстанавливаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

    Π•ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… сСриализаторов J2EE ΠΈ .NET ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΎ:

    • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ собствСнный сСриализатор с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ форматирования для Java ΠΈ.Π‘Π•Π’Π¬.
    • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сторонний ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅Ρ€ΠΎΠΌ Π² .NET Framework, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ja.NET ΠΈΠ»ΠΈ JNBridgePro.

    БСриализация XML - это процСсс прСобразования слоТного Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… (ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°) Π² ΠΏΠΎΡ‚ΠΎΠΊ XML. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ этот XML-ΠΏΠΎΡ‚ΠΎΠΊ Π² постоянноС состояниС Π² Ρ„ΠΎΡ€ΠΌΠ΅ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, пСрСнСсти Π΅Π³ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ) ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² исходный слоТный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚).

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ процСсс сСриализации XML, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания XML.XML - это тСкстовый язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², содСрТащий структурированныС ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. XML основан Π½Π° тСкстС, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкст, Π° ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для описания практичСски любого Ρ‚ΠΈΠΏΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ:

    • ВСкст
    • Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ
    • Настройки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
    • Π‘Ρ…Π΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…
    • Аннотации
    • Вставки

    XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ инструкции ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² самом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСриализация? - rfxcel.com

    БСриализация - это присвоСниС Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° кодирования ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, присвоСниС Π΅ΠΌΡƒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ идСнтичности, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎ Π΅Π³ΠΎ мСстополоТСния Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ поставок ΠΈΠ»ΠΈ Ρ‚ΠΎΠ³ΠΎ мСста, Π³Π΄Π΅ ΠΎΠ½ находился Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ своСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Код сСриализации ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ, насколько этого Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ ΠΈΠ»ΠΈ государствСнноС Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ производитСля (GTIN), описаниС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈΠ»ΠΈ лСкарства, ΡΠΊΠ»Π°Π΄ΡΠΊΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ (SKU), Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠ°Ρ€Ρ‚ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Ρ‚ΠΈΠΈ, срок годности, Π΄Π°Ρ‚Ρƒ производство, Π° Ρ‚Π°ΠΊΠΆΠ΅ линия ΠΈ Π·Π°Π²ΠΎΠ΄, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π±Ρ‹Π» ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½.

    МногиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π² структуру ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Als). Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ GS1, систСма Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… стандартов, опрСдСляСт ИИ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ позволяСт Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ объСм ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

    ΠŸΠΎΡ‡Π΅ΠΌΡƒ сСриализация?

    БоотвСтствиС:

    ИзмСнСния Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ…, внСсСнныС Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌΠΈ ΠΎΡ€Π³Π°Π½Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ санитарному Π½Π°Π΄Π·ΠΎΡ€Ρƒ Π·Π° качСством ΠΏΠΈΡ‰Π΅Π²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΈ ΠΌΠ΅Π΄ΠΈΠΊΠ°ΠΌΠ΅Π½Ρ‚ΠΎΠ² БША (USFDA) ΠΈ ЕвропСйскоС агСнтство ΠΏΠΎ лСкарствСнным срСдствам (EMA), повысили Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния соблюдСниСм Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ для Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ.ЀармацСвтичСскиС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ свои ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ соблюдСния Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ измСнСниям Π² Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π°ΠΊΡ‚Π°Ρ… ΠΈ ​​строгим Π°Π½Ρ‚ΠΈΠΊΠΎΡ€Ρ€ΡƒΠΏΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Π·Π°ΠΊΠΎΠ½Π°ΠΌ. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ фармацСвтичСская ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π»Π° Π΄Π΅Π»ΠΎ со злоупотрСблСниями ΠΏΠΎ всСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ создания стоимости, начиная ΠΎΡ‚ Π½Π΅Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³Π° ΠΈ заканчивая маскировкой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ бСзопасности ΠΈ ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅ΠΌ стандартами качСства производства. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΡ€Π³Π°Π½Ρ‹ строго слСдят Π·Π° фармацСвтичСскими компаниями. ΠŸΡ€Π°Π²ΠΎΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ€Π³Π°Π½Ρ‹ Π²ΠΎ всСм ΠΌΠΈΡ€Π΅ стали Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ. Π›ΡŽΠ±ΠΎΠ΅ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² рСгулирования ΠΈΠ»ΠΈ нСсоблюдСниС стандартов ΠΌΠΎΠΆΠ΅Ρ‚ нанСсти ΡƒΡ‰Π΅Ρ€Π± Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ ΡƒΠ³Ρ€ΠΎΠ·Ρƒ Π΅Π΅ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΎΡ‚ воздСйствия лСкарств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΡƒΠΊΡ€Π°Π΄Π΅Π½Π½Ρ‹ΠΌΠΈ, Π·Π°Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ€Π΅Π΄Π½Ρ‹ΠΌΠΈ. Вочная сСриализация ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ качСство ΠΈ устранит ΠΏΠΎΠ΄Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ лСкарства. НаТми ΠΈ Ρ‚Π²ΠΈΡ‚Π½ΠΈ!

    Value Beyond Compliance

    1. РСпутация Π±Ρ€Π΅Π½Π΄Π°

    Π˜Π½Π²Π΅ΡΡ‚ΠΈΡ†ΠΈΠΈ Π² ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠΎΠ³ΡƒΡ‚ принСсти производитСлям многочислСнныС прСимущСства. БСриализация ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ Π·Π° счСт Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ управлСния процСссами ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΡŽ Π±Ρ€Π΅Π½Π΄Π° Π·Π° счСт ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ².

    1. Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ поставок

    ПониманиС процСсса Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ поставок позволяСт Π»Π΅Π³Ρ‡Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запасы ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ влияниС сбоСв. Π‘ сСриализациСй ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ пСрСмСщаСтся ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ поставок . Π­Ρ‚ΠΎ позволяСт ΠΈΠΌ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ расходы ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ доставки, обСспСчивая Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π²Π°

    1. ΠŸΡ€ΠΈΠ±Ρ‹Π»ΡŒ

    По ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌ ВсСмирной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ здравоохранСния, ΠΎΡ‚ 10 Π΄ΠΎ 15% ΠΌΠΈΡ€ΠΎΠ²Ρ‹Ρ… поставок лСкарств ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° ΠΈΡ… ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ составляСт ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Ρ‹ Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ². Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π³ΠΎΠ΄ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅.ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠ° ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ сильноС влияниС Π½Π° Ρ‡ΠΈΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΠΎΠ³Π»Π°ΡˆΠ°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ с Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ бСзопасности, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ устройства Π½Π° ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅, Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹Π΅ Π»Π΅Π½Ρ‚Ρ‹, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‡Π΅Ρ€Π½ΠΈΠ»Π°, ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ для судСбной экспСртизы Π² ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅, ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ динамичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ подлинности. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, сСриализация являСтся основным ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ прозрачности всСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ поставок, обСспСчивая истинныС возмоТности отслСТивания ΠΈ отслСТивания. БСриализация затрудняСт ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² Ρ„Π°Π»ΡŒΡˆΠΈΠ²ΠΎΠΌΠΎΠ½Π΅Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ риск для ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ.

    Как ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ

    1. На ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ΄Π΄ΠΎΠ½ΠΎΠ²: ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ логистичСского Ρ†Π΅Π½Ρ‚Ρ€Π° (ΠΎΠΏΡ‚ΠΎΠ²ΠΈΠΊΠ°).
    2. На ΡƒΡ€ΠΎΠ²Π½Π΅ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ: ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π° (ΠΎΠΏΡ‚ΠΎΠ²Ρ‹ΠΉ / Ρ€ΠΎΠ·Π½ΠΈΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π΅Ρ†).
    3. На ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ: ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±ΠΎΠ»ΡŒΠ½ΠΈΡ‡Π½ΠΎΠΉ Π°ΠΏΡ‚Π΅ΠΊΠΈ.
    4. На ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„Π»Π°ΠΊΠΎΠ½Π°: ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ использования ΠΏΡ€Π΅ΠΏΠ°Ρ€Π°Ρ‚Π°.

    Наш 13-Π»Π΅Ρ‚Π½ΠΈΠΉ ΠΎΠΏΡ‹Ρ‚ внСдрСния Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для сСриализации ΠΈ отслСТивания ΠΈ отслСТивания позволяСт Π½Π°ΠΌ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ услуги Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Благодаря Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ тСхнологиям ΠΈ систСмам, rfXcel Π³ΠΎΡ‚ΠΎΠ² Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прСимущСствами Track & Trace ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ возмоТности своим ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°ΠΌ.

    ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΈΠ΅ сСриализации

    Бамая большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, связанная с Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ сСриализации фармацСвтичСскими производитСлями, - это инфраструктура, нСобходимая для Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.Π‘Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π° протяТСнии всСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ поставок ΠΎΡ‚ производства Π΄ΠΎ распрСдСлСния ΠΈ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅, ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ Π²Ρ‹Π΄Π°Ρ‡ΠΈ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ сканируСтся Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ, информация отправляСтся Π½Π° сайт с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ взаимодСйствия, систСму, которая Π² элСктронном Π²ΠΈΠ΄Π΅ управляСт всСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ транзакциях с элСктронной родословной. Π­Ρ‚ΠΎ становится ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ² ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ поставок Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·-Π·Π° большого объСма ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, ΠΈ влияния Π½Π° производствСнныС процСссы ΠΈ производствСнныС процСссы, Π½ΠΎ ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹, связанныС с Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π°ΠΊΠΎΠΉ систСмы, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сущСствСнным.Π—Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΈ Π½Π΅ освСдомлСны ΠΎ финансовых прСимущСствах внСдрСния Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для сСриализации ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠΌ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ½Π²Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ всС Π΅Ρ‰Π΅ развиваСтся.

    Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π΅

    Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ успСха Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСриализации, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² соотвСтствии со своими потрСбностями. РСшСниС для сСриализации Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ρ€Π°Π·Π½Ρ‹Π΅. НаТми ΠΈ Ρ‚Π²ΠΈΡ‚Π½ΠΈ! ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ°Ρ‚ возмоТности отслСТивания ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ для удовлСтворСния Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ фармацСвтичСской ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΡΡ‚ΠΈ, ΠΈ смогут Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ практичСски для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ рассматриваСмого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° отслСТивания ΠΈ отслСТивания.ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ всСй ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ / процСссом ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ всСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ поставок.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСриализация?

    Π’ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ сСриализация - это процСсс прСобразования структуры Π΄Π°Π½Π½Ρ‹Ρ…, хранящСйся Π² локальной памяти, Π² ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ ΠΏΠΎ сСти ΠΈΠ»ΠΈ сохранСн Π½Π° дискС для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ сборки ΠΈ использования Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π‘Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сохранСния состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.Π‘ΠΎΠ»Π΅Π΅ слоТноС использованиС этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ (RPC), эффСктивно выполняя ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² большой сСтСвой систСмС.

    Π–Π΅Π½Ρ‰ΠΈΠ½Π° Π΄Π΅Π»Π°Π΅Ρ‚ стойку Π½Π° Ρ€ΡƒΠΊΠ°Ρ… с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ

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

    ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ‹Π»ΠΈ сСриализованы ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π² ΠΈΡ… ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ располоТСниС, начинаСтся процСсс дСсСриализации.ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ², восстанавливаСт всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΅Π΅ Π² Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр исходного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, создавая Ρ‚ΠΎΡ‡Π½ΡƒΡŽ копию. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ», ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ°Ρ€ΡˆΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ; ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ - Π½Π΅Ρ‚. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΡŽΡ‰Π°Ρ Π΄Π°Π½Π½Ρ‹Π΅, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ сСриализован.

    БСриализация структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ.Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π½Π° физичСском носитСлС, поэтому Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ состояниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ восстановлСно Π΄ΠΎ Ρ‚ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ находился Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ остановки выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Π‘Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для эффСктивного сравнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ состояния Π² прилоТСниях Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

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

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

    БСриализация Π΄Π°Π½Π½Ρ‹Ρ…

    - Автостопом ΠΏΠΎ Python

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСриализация Π΄Π°Π½Π½Ρ‹Ρ…?

    БСриализация Π΄Π°Π½Π½Ρ‹Ρ… - это процСсс прСобразования структурированных Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚.
    Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² Ρ„ΠΎΡ€ΠΌΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΡ… исходныС
    состав.Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠ΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
    сСриализация - это минимизация Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ
    сниТаСт трСбования ΠΊ дисковому пространству ΠΈΠ»ΠΈ полосС пропускания.

    ПлоскиС ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

    ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ сСриализации Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π°ΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ
    Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ структурированы Π²ΠΎ врСмя сСриализации Π΄Π°Π½Π½Ρ‹Ρ… - плоскими ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ.
    Различия Π² Π΄Π²ΡƒΡ… стилях ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π½ΠΈΠΆΠ΅.

    Плоский ΡΡ‚ΠΈΠ»ΡŒ:

     {"Π’ΠΈΠΏ": "А", "ΠΏΠΎΠ»Π΅1": "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅1", "ΠΏΠΎΠ»Π΅2": "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅2", "ΠΏΠΎΠ»Π΅3": "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅3"}
     

    Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ:

     {"А"
        {"ΠΏΠΎΠ»Π΅1": "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅1", "ΠΏΠΎΠ»Π΅2": "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅2", "ΠΏΠΎΠ»Π΅3": "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅3"}}
     

    Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄Π²ΡƒΡ… стилях см. Π’ обсуТдСнии
    Бписок рассылки Python,
    Бписок рассылки IETF ΠΈ
    Π² stackexchange.

    БСриализация тСкста

    ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Ρ„Π°ΠΉΠ» (плоскиС Π΄Π°Π½Π½Ρ‹Π΅)

    Если сСриализуСмыС Π΄Π°Π½Π½Ρ‹Π΅ находятся Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈ содСрТат плоскиС Π΄Π°Π½Π½Ρ‹Π΅, Python ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сСриализации Π΄Π°Π½Π½Ρ‹Ρ….

    рСсп.

    ΠœΠ΅Ρ‚ΠΎΠ΄ repr Π² Python ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠ΅ прСдставлСниС Π²Π²ΠΎΠ΄Π°:

     # Π²Π²ΠΎΠ΄ ΠΊΠ°ΠΊ простой тСкст
    a = {"Π’ΠΈΠΏ": "А", "ΠΏΠΎΠ»Π΅1": "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅1", "ΠΏΠΎΠ»Π΅2": "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅2", "ΠΏΠΎΠ»Π΅3": "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅3"}
    
    # Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π²Π²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°
    a = open ('/ tmp / file.Ρ€Ρƒ ',' Π³ ')
    
    # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠ΅ прСдставлСниС Π²Π²ΠΎΠ΄Π°;
    # Π²Ρ‹Π²ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (repr (a))
    
    # записываСм содСрТимоС Π² Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ repr
    с open ('/ tmp / file.py') как f: f.write (repr (a))
     
    ast.literal_eval

    ΠœΠ΅Ρ‚ΠΎΠ΄ literal_eval бСзопасно Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Python.
    ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…: строки, числа, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, списки, словари, логичСскиС значСния ΠΈ None.

     с open ('/ tmp / file.py', 'r') ΠΊΠ°ΠΊ f: inp = ast.literal_eval (f.Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ())
     

    Π€Π°ΠΉΠ» CSV (плоскиС Π΄Π°Π½Π½Ρ‹Π΅)

    ΠœΠΎΠ΄ΡƒΠ»ΡŒ CSV Π² Python Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ классы для чтСния ΠΈ записи Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….
    Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ CSV.

    ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для чтСния:

     # Π§Ρ‚Π΅Π½ΠΈΠ΅ содСрТимого CSV ΠΈΠ· Ρ„Π°ΠΉΠ»Π°
    ΠΈΠΌΠΏΠΎΡ€Ρ‚ csv
    с open ('/ tmp / file.csv', newline = '') как f:
        reader = csv.reader (f)
        для строки Π² Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅:
            ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (строка)
     

    ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ записи:

     # Π—Π°ΠΏΠΈΡΡŒ содСрТимого CSV Π² Ρ„Π°ΠΉΠ»
    ΠΈΠΌΠΏΠΎΡ€Ρ‚ csv
    с open ('/ temp / file.csv', 'w', newline = '') как f:
        ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ = csv.ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ (ΠΆ)
        Writer.writerows (повторяСмый)
     

    Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ модуля ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ
    Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Python.

    YAML (Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅)

    БущСствуСт мноТСство сторонних ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ чтСния / записи Ρ„Π°ΠΉΠ»Π° YAML.
    структуры Π² Python. Один ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.

     # Π§Ρ‚Π΅Π½ΠΈΠ΅ содСрТимого YAML ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ
    ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ямл
    с open ('/ tmp / file.yaml', 'r', newline = '') как f:
        ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ:
            ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (yaml.load (f))
        ΠΊΡ€ΠΎΠΌΠ΅ yaml.YAMLError ΠΊΠ°ΠΊ ymlexcp:
            ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ymlexcp)
     

    Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ стороннСму ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ
    Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ PyYAML.

    Π€Π°ΠΉΠ» JSON (Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅)

    ΠœΠΎΠ΄ΡƒΠ»ΡŒ

    Python JSON ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для чтСния ΠΈ записи Ρ„Π°ΠΉΠ»ΠΎΠ² JSON.
    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° Π½ΠΈΠΆΠ΅.

    Π§Ρ‚Π΅Π½ΠΈΠ΅:

     # Π§Ρ‚Π΅Π½ΠΈΠ΅ содСрТимого JSON ΠΈΠ· Ρ„Π°ΠΉΠ»Π°
    ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ json
    с open ('/ tmp / file.json', 'r') как f:
        data = json.load (f)
     

    НаписаниС:

     # Π—Π°ΠΏΠΈΡΡŒ содСрТимого JSON Π² Ρ„Π°ΠΉΠ» ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ dump
    ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ json
    с open ('/ tmp / file.json', 'w') как f:
        json.dump (Π΄Π°Π½Π½Ρ‹Π΅, f, sort_keys = True)
     

    XML (Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅)

    Π Π°Π·Π±ΠΎΡ€

    XML Π² Python Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ с использованиСм ΠΏΠ°ΠΊΠ΅Ρ‚Π° xml .

    Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *