Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π±Π΅Π· использования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° JSON. Π’ экосистСмС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π° с этим лСгковСсным Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ стала стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π²Π΅Π±-сСрвисами, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ прилоТСниями ΠΈ внСшними API. Однако, нСсмотря Π½Π° простоту самой структуры Π΄Π°Π½Π½Ρ‹Ρ…, процСсс физичСской записи ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ сформированного массива Π² физичСский Ρ„Π°ΠΉΠ» Π½Π° дискС часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ трудности Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ настройка ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° открытия Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ символам ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

Рассмотрим Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ дСйствий, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ сохранСния JSON-структуры. Основной инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌ потрСбуСтся, β€” это встроСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒJSON. Он прСдоставляСт Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для управлСния процСссом сСриализации Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ запись Π² Ρ„Π°ΠΉΠ» β€” это двухэтапный процСсс: сначала ΠΌΡ‹ создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ записи, привязанный ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π² Π½Π΅Π³ΠΎ структуру Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ порядка дСйствий ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² конструктора являСтся частой ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ошибок FileIsLocked ΠΈΠ»ΠΈ InvalidEncoding.

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

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° записи ΠΈ Π²Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π² процСссС сохранСния Π΄Π°Π½Π½Ρ‹Ρ… являСтся созданиС экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π—Π°ΠΏΠΈΡΡŒJSON. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ выступаСт Π² Ρ€ΠΎΠ»ΠΈ посрСдника ΠΌΠ΅ΠΆΠ΄Ρƒ структурой Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ (массивы, структуры, значСния) ΠΈ тСкстовым прСдставлСниСм Π² Ρ„Π°ΠΉΠ»Π΅. ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ здСсь являСтся Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ тСкста. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ тСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ UTF-8, особСнно Ссли Π² Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ кирилличСскиС символы ΠΈΠ»ΠΈ спСцзнаки.

Если Π²Ρ‹ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΈ конструировании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Ρ‡Ρ‚ΠΎ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ появлСнию «кракозябр» вмСсто русского тСкста. Для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ совмСстимости с Π²Π΅Π±-стандартами всСгда явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8. Π­Ρ‚ΠΎ обСспСчит ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… прилоТСниях ΠΈ Π½Π° сторонних сСрвСрах.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ записи Π² ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½ процСсс 1Π‘, Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° созданиС Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Ошибка доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π±Π΅Π· сохранСния части Π΄Π°Π½Π½Ρ‹Ρ….

Бинтаксис создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° довольно прост, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊ порядку Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€” это имя Ρ„Π°ΠΉΠ»Π° (строка ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ИмяЀайла), Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Ρ€Π΅ΠΆΠΈΠΌ использования (ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅), ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ β€” ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°. Для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с нуля ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌ РСТимИспользованияЀайла.ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядит Π² ΠΊΠΎΠ΄Π΅:

Π˜ΠΌΡΠ€Π°ΠΉΠ»Π°Π”Π»ΡΠ—Π°ΠΏΠΈΡΠΈ = "C:\Data\export.json";

Π—Π°ΠΏΠΈΡΡŒ = Новый Π—Π°ΠΏΠΈΡΡŒJSON(Π˜ΠΌΡΠ€Π°ΠΉΠ»Π°Π”Π»ΡΠ—Π°ΠΏΠΈΡΠΈ, , ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);

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

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, Ссли ваш ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… сСрвСрах ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ…. ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ Π²ΠΈΠ΄Π° "C:\.." часто Π»ΠΎΠΌΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ пСрСносС Π±Π°Π·Ρ‹ Π½Π° Linux-сСрвСр.

Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ записью

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ записи, ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² памяти 1Π‘. Π€ΠΎΡ€ΠΌΠ°Ρ‚ JSON ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько основных Ρ‚ΠΈΠΏΠΎΠ² ΡƒΠ·Π»ΠΎΠ²: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ БоотвСтствиС Π² 1Π‘), массивы (Массив), строки, числа, Π±ΡƒΠ»Π΅Π²Ρ‹ значСния ΠΈ null. Ошибки Ρ‡Π°Ρ‰Π΅ всСго Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ спСцифичСскиС Ρ‚ΠΈΠΏΡ‹ 1Π‘, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π”Π°Ρ‚Π° ΠΈΠ»ΠΈ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ прСобразования.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒJSON ΡƒΠΌΠ΅Π΅Ρ‚ автоматичСски ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹, Π½ΠΎ для слоТных случаСв Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. НапримСр, Π΄Π°Ρ‚Ρ‹ Π² JSON ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² строковом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ISO 8601. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΡ‚Π΅ Π΄Π°Ρ‚Ρƒ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записана Π² локальном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚ иностранный ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€. РСкомСндуСтся явно ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρ‹ Π² строки ΠΏΠ΅Ρ€Π΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² структуру.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания слоТной Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ структуры, которая часто трСбуСтся для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²ΠΎ внСшниС систСмы. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Массив для списков Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ².

Π”Π°Π½Π½Ρ‹Π΅ = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°();

Π”Π°Π½Π½Ρ‹Π΅.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("ВСрсия", "1.0");

Π”Π°Π½Π½Ρ‹Π΅.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("ДатаБоздания", Π€ΠΎΡ€ΠΌΠ°Ρ‚(ВСкущаяДата(), "Π”Π€='yyyy-MM-dd'T'HH:mm:ss'"));

БписокВоваров = Новый Массив;

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚1 = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("Артикул, НазваниС, Π¦Π΅Π½Π°", "A001", "Ноутбук", 50000);

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚2 = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("Артикул, НазваниС, Π¦Π΅Π½Π°", "B002", "ΠœΡ‹ΡˆΡŒ", 1500);

БписокВоваров.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚1);

БписокВоваров.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚2);

Π”Π°Π½Π½Ρ‹Π΅.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Π’ΠΎΠ²Π°Ρ€Ρ‹", БписокВоваров);

Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Ρƒ для ΠΈΠΌΠ΅Π½ ΠΏΠΎΠ»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это общСпринятый стандарт Π² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. ИспользованиС ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (НазваниС вмСсто Name) допустимо тСхничСски, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ парсинга Π½Π° сторонС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ систСмы, Ссли ΠΎΠ½Π° Π½Π΅ настроСна Π½Π° UTF-8 ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

πŸ“Š Какой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π°Ρ‰Π΅ всСго Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ошибки ΠΏΡ€ΠΈ экспортС Π² JSON?
Π”Π°Ρ‚Π° ΠΈ ВрСмя
Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π”Π°Π½Π½Ρ‹Π΅
Бсылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹
ΠœΠ°ΡΡΠΈΠ²Ρ‹ структур

ΠŸΡ€ΠΎΡ†Π΅ΡΡ записи ΠΈ настройка форматирования

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒJSON создан, Π° Π΄Π°Π½Π½Ρ‹Π΅ сформированы, наступаСт этап нСпосрСдствСнной записи. ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅() являСтся основным инструмСнтом для этого. Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любого Ρ‚ΠΈΠΏΠ°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² тСкстовоС прСдставлСниС JSON. Однако, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„Π°ΠΉΠ» Π±Ρ‹Π» Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ (Π½Π΅ Π² ΠΎΠ΄Π½Ρƒ Π΄Π»ΠΈΠ½Π½ΡƒΡŽ строку), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ форматирования.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒJSON ΠΈΠΌΠ΅Π΅Ρ‚ свойство Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Если ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π˜ΡΡ‚ΠΈΠ½Π°, Ρ‚ΠΎ Π² Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒΡΡ отступы ΠΈ пСрСносы строк, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· содСрТимого. Для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-срСды, Π³Π΄Π΅ Π²Π°ΠΆΠ΅Π½ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°ΠΉΡ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ сТатый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (Π±Π΅Π· отступов), Π½ΠΎ для Π»ΠΎΠ³ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ записи выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π°ΠΏΠΈΡΡŒ.Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ = Π˜ΡΡ‚ΠΈΠ½Π°;

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

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

ΠšΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ() Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Пока ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ записи ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚, Ρ„Π°ΠΉΠ» остаСтся Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ для Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов. Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° закрытия Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ всС Π±ΡƒΡ„Π΅Ρ€Ρ‹ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½Ρ‹ Π½Π° диск ΠΈ Ρ„Π°ΠΉΠ» освобоТдСн. Если этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот ΠΆΠ΅ Ρ„Π°ΠΉΠ» Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅) ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС доступа.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ экзСмпляр Π—Π°ΠΏΠΈΡΡŒJSON для записи Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… нСзависимых Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» Π±Π΅Π· Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ создаст Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ JSON, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ стандартными срСдствами.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… NDJSON), ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ записан ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π·Π°Π½ΠΈΠΌΠ°Π» ΠΎΠ΄Π½Ρƒ строку. Π’ стандартном ΠΆΠ΅ случаС ΠΎΠ΄ΠΈΠ½ Π²Ρ‹Π·ΠΎΠ² Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ соотвСтствуСт ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌΡƒ элСмСнту JSON.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций

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

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ситуации, ΠΊΠΎΠ³Π΄Π° ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ содСрТит Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒJSON Π½Π΅ создаСт ΠΏΠ°ΠΏΠΊΠΈ автоматичСски. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² C:\Reports\2026\file.json, Π° ΠΏΠ°ΠΏΠΊΠ° 2026 Π½Π΅ сущСствуСт, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄ записью Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сущСствованиС ΠΏΡƒΡ‚ΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€ΠΈ нСобходимости.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ошибок:

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ = "C:\Export\data.json";

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ созданиС ΠΏΠ°ΠΏΠΊΠΈ, Ссли Π½ΡƒΠΆΠ½ΠΎ

Если НС ЀайлБущСствуСт(ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ) Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠšΠ°Ρ‚Π°Π»ΠΎΠ³(ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ˜ΠΌΡΠšΠ°Ρ‚Π°Π»ΠΎΠ³Π°(ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ));

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Π—Π°ΠΏΠΈΡΡŒ = Новый Π—Π°ΠΏΠΈΡΡŒJSON(ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ, , ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);

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

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

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π€Π°ΠΉΠ» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ записан!");

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка записи: " + ОписаниСОшибки());

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

Π’ Π±Π»ΠΎΠΊΠ΅ Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вывСсти сообщСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Π½ΠΎ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΆΡƒΡ€Π½Π°Π» рСгистрации событий 1Π‘. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ администратору систСмы ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ сбоя, Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ просто Π·Π°ΠΊΡ€Ρ‹Π» ΠΎΠΊΠ½ΠΎ с ошибкой. ИспользованиС ЖурналРСгистрации являСтся Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ для Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ.

β˜‘οΈ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ качСства записи JSON

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

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² записи: Π—Π°ΠΏΠΈΡΡŒJSON ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€JSON

Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ сущСствуСт нСсколько способов Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON, ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΠΏΡƒΡ‚Π°ΡŽΡ‚ΡΡ Π² Π½ΠΈΡ…. ОсновноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π—Π°ΠΏΠΈΡΡŒJSON ΠΈ высокоуровнСвым ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€JSON. ПониманиС Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ инструмСнта ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ.

Π—Π°ΠΏΠΈΡΡŒJSON Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΏΠΎΡ‚ΠΎΠΊΠ° (stream). Π’Ρ‹ создаСтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ записываСтС Π² Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом, позволяСт Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ частями (Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ для ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²) ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти. ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€JSON, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ структурами: ΠΎΠ½ Π±Π΅Ρ€Π΅Ρ‚ всю структуру 1Π‘, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Ρ‘ Π² строку JSON Π² памяти, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ эту строку ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ».

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰Π°Ρ основныС характСристики этих ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ²:

Π₯арактСристика Π—Π°ΠΏΠΈΡΡŒJSON ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€JSON + Π—Π°ΠΏΠΈΡΡŒΠ’Π΅ΠΊΡΡ‚Π°
ΠŸΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти МинимальноС (потоковая запись) ВысокоС (Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ всСй строки Π² памяти)
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Высокая для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов БрСдняя (Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° сборку строки)
Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ настройки Высокая (ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ частями) Низкая (всС ΠΈΠ»ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ)
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° БрСдняя (Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ) Низкая (ΠΎΠ΄Π½Π° функция)

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π·Π°Π΄Π°Ρ‡ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, Π³Π΄Π΅ объСм Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚, Ρ€Π°Π·Π½ΠΈΡ†Π° Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Π°. Однако, Ссли Π²Ρ‹ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ справочник Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹ Π² 100 000 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ, использованиС ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€JSON ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Π½ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти сСрвСра. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π—Π°ΠΏΠΈΡΡŒJSON являСтся Π±Π΅Π·Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.

Π‘Π΅ΠΊΡ€Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π—Π°ΠΏΠΈΡΡŒJSON, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Ρ†ΠΈΠΊΠ»Π°. ЗаписывайтС значСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сборщик мусора.

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈ Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅

АрхитСктура 1Π‘ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ограничСния Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π’ толстом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄ выполняСтся Π½Π° локальной машинС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈ ΠΏΡƒΡ‚ΡŒ C:\Temp\file.json ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ диск этого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ (Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅) ситуация ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ иная: ΠΊΠΎΠ΄ выполняСтся Π½Π° сСрвСрС 1Π‘.

Если Π²Ρ‹ запуститС ΠΊΠΎΠ΄ записи Ρ„Π°ΠΉΠ»Π° Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, ΡƒΠΊΠ°Π·Π°Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ создан Π½Π° сСрвСрС 1Π‘ Π² ΠΏΠ°ΠΏΠΊΠ΅ профиля сСрвСра ΠΈΠ»ΠΈ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ этот Ρ„Π°ΠΉΠ» Π² своСм ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅. Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠŸΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ—Π°Π³Ρ€ΡƒΠ·ΠΊΠΈΠ€Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ HTTP-ΠΎΡ‚Π²Π΅Ρ‚, Ссли это Π²Π΅Π±-сСрвис.

Для скачивания Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ мСняСтся: сначала ΠΌΡ‹ записываСм JSON Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π½Π° сСрвСрС (ΠΈΠ»ΠΈ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² памяти), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ для скачивания.

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°: сохранСниС Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» сСрвСра

Π˜ΠΌΡΠ’Ρ€Π΅ΠΌΠ€Π°ΠΉΠ»Π° = ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ˜ΠΌΡΠ’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎΠ€Π°ΠΉΠ»Π°("json");

Π—Π°ΠΏΠΈΡΡŒ = Новый Π—Π°ΠΏΠΈΡΡŒJSON(Π˜ΠΌΡΠ’Ρ€Π΅ΠΌΠ€Π°ΠΉΠ»Π°, , ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);

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

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

// Π”Π°Π»Π΅Π΅ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΡ‚Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ

Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅ = Новый Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅(Π˜ΠΌΡΠ’Ρ€Π΅ΠΌΠ€Π°ΠΉΠ»Π°);

ΠŸΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ—Π°Π³Ρ€ΡƒΠ·ΠΊΠΈΠ€Π°ΠΉΠ»ΠΎΠ².Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠ€Π°ΠΉΠ»(Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅, "export.json");

Π’Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅, ΠΈ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном. ВсСгда провСряйтС свойство Π’Π΅Π±ΠšΠ»ΠΈΠ΅Π½Ρ‚ глобального контСкста, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ сохранСния.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… вСрсиях 1Π‘ (1Π‘:Π€Ρ€Π΅Ρˆ) доступ ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС сСрвСра строго ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½. Π—Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, которая очищаСтся послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сСанса. НС рассчитывайтС Π½Π° сохранСниС Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° сСрвСрС Π² ΠΎΠ±Π»Π°ΠΊΠ΅.

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

Как Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ JSON Π² Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ открывался Π² Excel?

Excel Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ «чистый» JSON Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΡ€ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Power Query Π²Π½ΡƒΡ‚Ρ€ΠΈ Excel для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° JSON Ρ„Π°ΠΉΠ»Π°, Π»ΠΈΠ±ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ CSV. Если Π½ΡƒΠΆΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ JSON, сохранитС Π΅Π³ΠΎ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ.json, Π° Π² Excel Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅: Π”Π°Π½Π½Ρ‹Π΅ -> ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ -> Из Ρ„Π°ΠΉΠ»Π° -> Из JSON.

МоТно Π»ΠΈ Π΄ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ JSON Ρ„Π°ΠΉΠ»?

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ русскиС Π±ΡƒΠΊΠ²Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ?

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Ρ„Π°ΠΉΠ» сохраняСтся Π² ANSI ΠΈΠ»ΠΈ Windows-1251, Π° открываСтся Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰Π΅ΠΌ UTF-8 (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚). ВсСгда явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8 ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π—Π°ΠΏΠΈΡΡŒJSON.

Как Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ большой JSON Ρ„Π°ΠΉΠ» (нСсколько Π“Π‘)?

НС Π·Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΡƒΡŽ запись: создайтС Π—Π°ΠΏΠΈΡΡŒJSON, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ запись массива, ΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ порциями (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ 1000 строк ΠΈΠ· Π‘Π”), записывая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π½Π΅ храня вСсь массив Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ 1Π‘.

πŸ’‘

Π“Π»Π°Π²Π½Ρ‹ΠΉ Π·Π°Π»ΠΎΠ³ успСха ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с JSON Π² 1Π‘ β€” это явноС ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ UTF-8 ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° записи для снятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ с Ρ„Π°ΠΉΠ»Π°.