ΠΡΠΈΠ±ΠΊΠ° Β«ΠΠ΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ JSONΒ» Π² 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΎΠ±ΠΌΠ΅Π½ΠΎΠΌ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π²Π΅Π±-Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ°ΡΠΏΠ°ΡΡΠΈΡΡ JSON-ΡΡΡΠΎΠΊΡ, Π½ΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ: Π»ΠΈΡΠ½ΠΈΠΌΠΈ Π·Π°ΠΏΡΡΡΠΌΠΈ, ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΊΠ°Π²ΡΡΠΊΠ°ΠΌΠΈ, Π½Π΅ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π²ΠΎΠ²ΡΠ΅ Π±ΠΈΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ :
β ΠΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ 1Π‘ ΠΈ ΡΠ°ΠΉΡΠΎΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· HTTPΠ‘Π΅ΡΠ²ΠΈΡ ΠΈΠ»ΠΈ REST API).
β ΠΠΌΠΏΠΎΡΡ/ΡΠΊΡΠΏΠΎΡΡ JSON-ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°Ρ
.
β Π Π°Π±ΠΎΡΠ° Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ API (Π±Π°Π½ΠΊΠΈ, ΠΌΠ°ΡΠΊΠ΅ΡΠΏΠ»Π΅ΠΉΡΡ, Π»ΠΎΠ³ΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ).
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΎΡ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΠΊ Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠ»ΡΡΠ°Π΅Π² Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π°Π΄ΠΈΠΌ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ β ΠΎΡ ΡΡΡΠ½ΠΎΠΉ ΠΏΡΠ°Π²ΠΊΠΈ JSON Π΄ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ 1Π‘. ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΈΠΌ ΡΠΈΠΏΠΈΡΠ½ΡΠΌ Β«ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠΌ ΠΊΠ°ΠΌΠ½ΡΠΌΒ», ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΏΠΈΡΡΡ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
1. Π§ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° Β«ΠΠ΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ JSONΒ»?
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΠ°ΡΡΠ΅Ρ 1Π‘ (ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΡΠΎΡΠΈΡΠ°ΡΡJSON(), ΠΠ°ΠΏΠΈΡΠ°ΡΡJSON() ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅) Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Ρ
ΠΎΠ΄Π½ΡΡ ΡΡΡΠΎΠΊΡ. ΠΡΠΈΡΠΈΠ½Ρ Π΄Π΅Π»ΡΡΡΡ Π½Π° ΡΡΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ:
- πΉ Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ: ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ, Π·Π°ΠΏΡΡΡΠ΅, ΡΠΊΠΎΠ±ΠΊΠΈ, Π½Π΅Π²Π΅ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
βΠ²ΠΌΠ΅ΡΡΠΎ"). - πΉ ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ: JSON ΠΏΡΠΈΡΡΠ» Π²
UTF-8 Ρ BOM, Π° 1Π‘ ΠΎΠΆΠΈΠ΄Π°Π΅ΡWindows-1251, ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. - πΉ ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ: Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ JSON ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ°ΡΡΠΈΠ² Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°).
ΠΠ°ΠΆΠ½ΠΎ: 1Π‘ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΡΠ½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΡΡΠΎΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² JSON ΠΏΡΠΎΠΏΡΡΠ΅Π½Π° Π·Π°ΠΏΡΡΠ°Ρ ΠΏΠΎΡΠ»Π΅ 10-Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΠ°ΡΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Β«ΡΠ»ΠΎΠΌΠ°ΡΡΡΡΒ» ΡΠΎΠ»ΡΠΊΠΎ Π½Π° 20-ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅, Π²ΡΠ΄Π°Π²Π°Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΡ.
2. Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ Π²ΡΡΠ²ΠΈΡΡ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
2.1. ΠΠΏΠ΅ΡΠ°ΡΠΊΠΈ Π² ΡΡΡΠ½ΠΎΠΌ JSON
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΠ΅ JSON-ΡΡΡΠΎΠΊΡ Π²ΡΡΡΠ½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅), Π²Π΅Π»ΠΈΠΊ ΡΠΈΡΠΊ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΊΠ°Π²ΡΡΠΊΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΡΡ. ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
Π’Π΅ΠΊΡΡJSON = '{
"ΠΠΌΡ": "ΠΠ²Π°Π½",
"Π€Π°ΠΌΠΈΠ»ΠΈΡ": "ΠΠ΅ΡΡΠΎΠ²" // <-- ΠΏΡΠΎΠΏΡΡΠ΅Π½Π° Π·Π°ΠΏΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ
"ΠΡΡΠ΅ΡΡΠ²ΠΎ": "Π‘ΠΈΠ΄ΠΎΡΠΎΠ²ΠΈΡ"
}';
π ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΡ JSON (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, JSONLint). ΠΠ½ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΡΠΊΠ°ΠΆΡΡ ΡΡΡΠΎΠΊΡ.
2.2. ΠΠ΅ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
JSON ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠΈΠΏΠ° \, ", /, \n. ΠΡΠ»ΠΈ Π² Π΄Π°Π½Π½ΡΡ
Π΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΡΡ Ρ ΠΊΠ°Π²ΡΡΠΊΠ°ΠΌΠΈ ("Π¦Π΅Π½Π°: "100 ΡΡΠ±.""), ΠΏΠ°ΡΡΠ΅Ρ Β«ΡΠΏΠΎΡΠΊΠ½ΡΡΡΡΒ».
β ΠΡΠΈΠ±ΠΎΡΠ½ΠΎ:
"ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ "ΠΡΠ΅ΠΌΠΈΡΠΌ" ΠΊΠ»Π°ΡΡΠ°"
β ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ:
"ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ \"ΠΡΠ΅ΠΌΠΈΡΠΌ\" ΠΊΠ»Π°ΡΡΠ°"
2.3. ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ
ΠΡΠ»ΠΈ JSON ΠΏΡΠΈΡΡΠ» ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠ²Π΅Ρ ΠΎΡ API), Π΅Π³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ Π² 1Π‘. ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ: ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ΄Π°ΡΡ UTF-8, Π° 1Π‘ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ Windows-1251, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Β«ΠΊΡΠ°ΠΊΠΎΠ·ΡΠ±ΡΡΒ» ΠΈΠ»ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, BOM).
π ΠΠ°ΠΊ Π²ΡΡΠ²ΠΈΡΡ:
ΠΡΠΊΡΠΎΠΉΡΠ΅ JSON-ΡΠ°ΠΉΠ» Π² Notepad++ ΠΈΠ»ΠΈ VS Code β Π² ΡΡΡΠΎΠΊΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°. ΠΡΠ»ΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅ UTF-8-BOM, ΡΠ΄Π°Π»ΠΈΡΠ΅ BOM (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· ΠΡΠ°Π²ΠΊΠ° β ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ β ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² UTF-8 (Π±Π΅Π· BOM)).
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ, Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΠΉΡΠ΅ Π΅Ρ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° Π² 1Π‘: Π’Π΅ΠΊΡΡ = ΠΠΎΠ²ΡΠΉ Π§ΡΠ΅Π½ΠΈΠ΅Π’Π΅ΠΊΡΡΠ°(ΠΠΌΡΠ€Π°ΠΉΠ»Π°, ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡΠ°.UTF8).ΠΡΠΎΡΠΈΡΠ°ΡΡ().
2.4. ΠΠ΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ JSON ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ ΡΡ Π΅ΠΌΠ΅
ΠΠ½ΠΎΠ³Π΄Π° JSON ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ΅Π½, Π½ΠΎ Π΅Π³ΠΎ ΡΡΡΡΠΊΡΡΡΠ° Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΡΠΎΠΉ, ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ 1Π‘. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, API Π²Π΅ΡΠ½ΡΠ» ΠΌΠ°ΡΡΠΈΠ², Π° Π²Π°Ρ ΠΊΠΎΠ΄ ΡΠ°ΡΡΡΠΈΡΠ°Π½ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ°ΡΡΠ΅Ρ Π½Π΅ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, Π½ΠΎ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΠ±ΠΎΠ΅ΠΌ.
π ΠΡΠΈΠΌΠ΅Ρ:
ΠΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΠ΅:
{
"Π’ΠΎΠ²Π°ΡΡ": [
{"ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ 1"},
{"ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ 2"}
]
}
Π ΠΏΡΠΈΡΠ»ΠΎ:
[
{"ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ 1"},
{"ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅": "Π’ΠΎΠ²Π°Ρ 2"}
]
2.5. ΠΠΈΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ API
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ API (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΠ΅ ΠΈΠ»ΠΈ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠ΅) ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ JSON Ρ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, \x00 ΠΈΠ»ΠΈ \x1F). Π’Π°ΠΊΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½Π΅ Π²ΠΈΠ΄Π½Ρ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅, Π½ΠΎ Π»ΠΎΠΌΠ°ΡΡ ΠΏΠ°ΡΡΠΈΠ½Π³.
π ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π‘ΡΡΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ΠΠΠ½ΡΡΡ(Π’Π΅ΠΊΡΡJSON) Π² 1Π‘ β ΡΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²ΡΠ΅ Π½Π΅ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² Π²ΠΈΠ΄Π΅ ~X.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ JSON ΠΎΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
Π’Π΅ΠΊΡΡJSON = Π‘ΡΡΠΠ°ΠΌΠ΅Π½ΠΈΡΡ(Π’Π΅ΠΊΡΡJSON, Π‘ΠΈΠΌΠ²ΠΎΠ»(31), ""); // Π£Π΄Π°Π»ΡΠ΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ» US (Unit Separator)Π’Π΅ΠΊΡΡJSON = Π‘ΡΡΠΠ°ΠΌΠ΅Π½ΠΈΡΡ(Π’Π΅ΠΊΡΡJSON, Π‘ΠΈΠΌΠ²ΠΎΠ»(0), ""); // Π£Π΄Π°Π»ΡΠ΅ΠΌ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ»
3. ΠΠΎΡΠ°Π³ΠΎΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ: ΠΊΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° JSON. ΠΠΈΠΆΠ΅ β ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ»ΡΡΠ°Π΅Π².
Π¨Π°Π³ 1: ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ JSON
ΠΠ΅ΡΠ΅Π΄ ΠΏΠ°ΡΡΠΈΠ½Π³ΠΎΠΌ Π² 1Π‘ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ JSON Π½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ:
- Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΡΡΠΎΠΊΡ JSON Π² Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, JSON Formatter).
- ΠΡΠ»ΠΈ Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ β ΠΈΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΈΡ
Π²ΡΡΡΠ½ΡΡ ΠΈΠ»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ (ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΎΠΏΡΠΈΡ
Fix JSON). - Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ (ΠΎΠ±ΡΠ΅ΠΊΡ vs ΠΌΠ°ΡΡΠΈΠ²).
Π¨Π°Π³ 2: ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ
ΠΡΠ»ΠΈ JSON ΡΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΎΡΠ²Π΅ΡΠ° HTTP-Π·Π°ΠΏΡΠΎΡΠ°:
- π ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» Π² Notepad++ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Π² ΡΡΡΠΎΠΊΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
- π ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠΉΡΠ΅ Π²
UTF-8 Π±Π΅Π· BOM. - π Π ΠΊΠΎΠ΄Π΅ 1Π‘ ΡΠ²Π½ΠΎ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ:
Π’Π΅ΠΊΡΡJSON = ΠΠΎΠ²ΡΠΉ Π§ΡΠ΅Π½ΠΈΠ΅Π’Π΅ΠΊΡΡΠ°(ΠΠΌΡΠ€Π°ΠΉΠ»Π°, ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡΠ°.UTF8).ΠΡΠΎΡΠΈΡΠ°ΡΡ();
Π¨Π°Π³ 3: ΠΡΠΈΡΡΠΊΠ° ΠΎΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²:
Π€ΡΠ½ΠΊΡΠΈΡ ΠΡΠΈΡΡΠΈΡΡJSON(Π’Π΅ΠΊΡΡJSON)
// Π£Π΄Π°Π»ΡΠ΅ΠΌ Π½Π΅ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (ΠΊΡΠΎΠΌΠ΅ \t, \n, \r)
ΠΠ»Ρ Π‘Ρ = 0 ΠΠΎ 31 Π¦ΠΈΠΊΠ»
ΠΡΠ»ΠΈ ΠΠ (Π‘Ρ = 9 ΠΠ»ΠΈ Π‘Ρ = 10 ΠΠ»ΠΈ Π‘Ρ = 13) Π’ΠΎΠ³Π΄Π°
Π’Π΅ΠΊΡΡJSON = Π‘ΡΡΠΠ°ΠΌΠ΅Π½ΠΈΡΡ(Π’Π΅ΠΊΡΡJSON, Π‘ΠΈΠΌΠ²ΠΎΠ»(Π‘Ρ), "");
ΠΠΎΠ½Π΅ΡΠΡΠ»ΠΈ;
ΠΠΎΠ½Π΅ΡΠ¦ΠΈΠΊΠ»Π°;
ΠΠΎΠ·Π²ΡΠ°Ρ Π’Π΅ΠΊΡΡJSON;
ΠΠΎΠ½Π΅ΡΠ€ΡΠ½ΠΊΡΠΈΠΈ
Π¨Π°Π³ 4: ΠΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
ΠΡΠ»ΠΈ Π² Π΄Π°Π½Π½ΡΡ
Π΅ΡΡΡ ΠΊΠ°Π²ΡΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΡΠ»ΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π‘ΡΡΠ¨Π°Π±Π»ΠΎΠ½() ΠΈΠ»ΠΈ JSON.ΠΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡΠ‘ΡΡΠΎΠΊΡ() (Π² Π½ΠΎΠ²ΡΡ
Π²Π΅ΡΡΠΈΡΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ):
Π’Π΅ΠΊΡΡJSON = JSON.ΠΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡΠ‘ΡΡΠΎΠΊΡ(Π’Π΅ΠΊΡΡJSON); // ΠΠ»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 8.3.20+
// ΠΠ»ΠΈ Π²ΡΡΡΠ½ΡΡ:
Π’Π΅ΠΊΡΡJSON = Π‘ΡΡΠΠ°ΠΌΠ΅Π½ΠΈΡΡ(Π’Π΅ΠΊΡΡJSON, """", "\"\"");
Π’Π΅ΠΊΡΡJSON = Π‘ΡΡΠΠ°ΠΌΠ΅Π½ΠΈΡΡ(Π’Π΅ΠΊΡΡJSON, "\", "\\");
Π¨Π°Π³ 5: ΠΡΠ»Π°Π΄ΠΊΠ° ΡΠ΅ΡΠ΅Π· ΠΠ°ΠΏΠΈΡΡJSON/Π§ΡΠ΅Π½ΠΈΠ΅JSON
ΠΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½ΡΠΌΠΈ, Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ JSON Π² ΡΠ°ΠΉΠ» ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅:
ΠΠ°ΠΏΠΈΡΡJSON = ΠΠΎΠ²ΡΠΉ ΠΠ°ΠΏΠΈΡΡJSON;
ΠΠ°ΠΏΠΈΡΡJSON.Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΠ‘ΡΡΠΎΠΊΡ();
ΠΠ°ΠΏΠΈΡΡJSON.ΠΠ°ΠΏΠΈΡΠ°ΡΡJSON(ΠΠ°ΡΠΈΠΠ°Π½Π½ΡΠ΅);
Π’Π΅ΠΊΡΡJSON = ΠΠ°ΠΏΠΈΡΡJSON.ΠΠ°ΠΊΡΡΡΡ();
// Π‘ΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
Π’Π΅ΠΊΡΡJSON.ΠΠ°ΠΏΠΈΡΠ°ΡΡ("C:\temp\debug.json", ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡΠ°.UTF8);
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ JSON Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΠ΅|Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ (UTF-8 Π±Π΅Π· BOM)|ΠΡΠΈΡΡΠΈΡΠ΅ JSON ΠΎΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²|ΠΠΊΡΠ°Π½ΠΈΡΡΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (ΠΊΠ°Π²ΡΡΠΊΠΈ, ΡΠ»ΡΡΠΈ)|Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ JSON Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ ΡΡ Π΅ΠΌΠΎΠΉ-->
4. Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ JSON Π² 1Π‘
ΠΠ°ΠΆΠ΅ ΠΎΠΏΡΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ 1Π‘ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠΏΡΡΠΊΠ°ΡΡ Π½ΡΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΡΠ±ΠΎΡΠΌ. Π Π°Π·Π±Π΅ΡΡΠΌ ΡΠΎΠΏ-5 Β«ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ°ΠΌΠ½Π΅ΠΉΒ».
4.1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π²ΠΎΠΉΠ½ΡΡ
JSON ΡΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ Π΄Π»Ρ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ (') ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ (`) Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ:
β {"Name": 'ΠΠ²Π°Π½'} // ΠΡΠΈΠ±ΠΊΠ°!
β
{"Name": "ΠΠ²Π°Π½"}
4.2. ΠΠ°ΠΏΡΡΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
Π JSON Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ Π·Π°ΠΏΡΡΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°:
β {
"Field1": "Value1",
"Field2": "Value2", // <-- ΠΠΈΡΠ½ΡΡ Π·Π°ΠΏΡΡΠ°Ρ
}
β
{
"Field1": "Value1",
"Field2": "Value2"
}
4.3. ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Unicode-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ Π²Π½Π΅ ASCII (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ°) Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² UTF-8. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΡΡΠ½ΡΡ ΡΠΊΡΠ°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡ
ΠΊΠ°ΠΊ \uXXXX, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°:
β "ΠΡΠΈΠ²Π΅Ρ": "\u0440\u0438\u0432\u0435\u0442" // ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡ
β
"ΠΡΠΈΠ²Π΅Ρ": "ΠΡΠΈΠ²Π΅Ρ" // ΠΠ»ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: "\u041F\u0440\u0438\u0432\u0435\u0442"
4.4. ΠΡΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΈΠΏΠ°
JSON Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Null Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ, ΡΠ²Π½ΠΎ ΡΠΊΠ°ΠΆΠΈΡΠ΅ null:
β {"Field": } // ΠΡΠΈΠ±ΠΊΠ°!
β
{"Field": null}
4.5. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π±ΠΈΠ½Π°ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π² JSON
JSON ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ°. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ), Π·Π°ΠΊΠΎΠ΄ΠΈΡΡΠΉΡΠ΅ ΠΈΡ
Π² Base64:
ΠΠ²ΠΎΠΈΡΠ½ΡΠ΅ΠΠ°Π½Π½ΡΠ΅ = ΠΠΎΠ»ΡΡΠ°Π΅ΠΌΠΠ°ΡΡΠΈΠ½ΠΊΡ();
Π’Π΅ΠΊΡΡBase64 = Base64Π‘ΡΡΠΎΠΊΠ°(ΠΠ²ΠΎΠΈΡΠ½ΡΠ΅ΠΠ°Π½Π½ΡΠ΅);
JSON.ΠΠΎΠ±Π°Π²ΠΈΡΡ("Image", Π’Π΅ΠΊΡΡBase64);
ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ JSON Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ RFC 8259. ΠΠ°ΠΆΠ΅ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² JSON) ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΠΏΠ°ΡΡΠΈΠ½Π³Π° Π² 1Π‘.
5. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ JSON Π² 1Π‘
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, Π²Π½Π΅Π΄ΡΠΈΡΠ΅ Π² ΠΊΠΎΠ΄ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΠΈΠΆΠ΅ β Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΈΠΏΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ.
5.1. Π€ΡΠ½ΠΊΡΠΈΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ JSON
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ JSON ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ°ΡΡΠΈΠ½Π³ΠΎΠΌ:
Π€ΡΠ½ΠΊΡΠΈΡ ΠΡΠΎΠ²Π΅ΡΠΈΡΡJSON(Π’Π΅ΠΊΡΡJSON)
ΠΠΎΠΏΡΡΠΊΠ°
Π§ΡΠ΅Π½ΠΈΠ΅JSON = ΠΠΎΠ²ΡΠΉ Π§ΡΠ΅Π½ΠΈΠ΅JSON;
Π§ΡΠ΅Π½ΠΈΠ΅JSON.Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΠ‘ΡΡΠΎΠΊΡ(Π’Π΅ΠΊΡΡJSON);
Π§ΡΠ΅Π½ΠΈΠ΅JSON.ΠΡΠΎΡΠΈΡΠ°ΡΡJSON(); // ΠΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° β Π²ΡΠ»Π΅ΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ·Π²ΡΠ°Ρ ΠΡΡΠΈΠ½Π°;
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ·Π²ΡΠ°Ρ ΠΠΎΠΆΡ;
ΠΠΎΠ½Π΅ΡΠΠΎΠΏΡΡΠΊΠΈ;
ΠΠΎΠ½Π΅ΡΠ€ΡΠ½ΠΊΡΠΈΠΈ
5.2. ΠΠΎΠ³Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΠ°ΡΡΠΈΠ½Π³Π°
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ Π·Π°ΠΏΠΈΡΡ Π² Π»ΠΎΠ³ Ρ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ:
ΠΠΎΠΏΡΡΠΊΠ°
ΠΠ°Π½Π½ΡΠ΅ = JSON.ΠΡΠΎΡΠΈΡΠ°ΡΡJSON(Π’Π΅ΠΊΡΡJSON);
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΏΠΈΡΠ°ΡΡΠΠΠΎΠ³("ΠΡΠΈΠ±ΠΊΠ° JSON: " + ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΡΠΈΠ±ΠΊΠΈ());
ΠΠ°ΠΏΠΈΡΠ°ΡΡΠΠΠΎΠ³("ΠΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ JSON: " + Π‘ΡΠ΅Π΄(Π’Π΅ΠΊΡΡJSON, 1, 500)); // ΠΠ΅ΡΠ²ΡΠ΅ 500 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
ΠΠΎΠ½Π΅ΡΠΠΎΠΏΡΡΠΊΠΈ;
5.3. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ
JSON Π½Π΅ ΡΠ°Π·Π»ΠΈΡΠ°Π΅Ρ ΡΠΈΠΏΡ ΡΠΈΡΠ΅Π» (Π²ΡΠ΅ ΡΠΈΡΠ»Π° β Number). Π 1Π‘ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡΡΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:
ΠΡΠ»ΠΈ Π’ΠΈΠΏΠΠ½Ρ(ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅) = Π’ΠΈΠΏ("Π§ΠΈΡΠ»ΠΎ") Π’ΠΎΠ³Π΄Π°
ΠΡΠ»ΠΈ ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ = Π¦Π΅Π»(ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅) Π’ΠΎΠ³Π΄Π°
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ = Π¦Π΅Π»(ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅); // ΠΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ΅Π»ΠΎΠΌΡ ΡΠΈΠΏΡ
ΠΠ½Π°ΡΠ΅
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ = ΠΠΊΡ(ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅, 2); // ΠΠΊΡΡΠ³Π»ΡΠ΅ΠΌ Π΄ΡΠΎΠ±Π½ΠΎΠ΅
ΠΠΎΠ½Π΅ΡΠΡΠ»ΠΈ;
ΠΠΎΠ½Π΅ΡΠΡΠ»ΠΈ;
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ
JSON ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡXDTO β ΠΎΠ½ Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
, ΡΠ΅ΠΌ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΠ°ΡΡΠ΅Ρ.
6. ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ
Π Π°Π·Π±Π΅ΡΡΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠ΅ΠΉΡΡ ΠΈΠ· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΠΉΡ 1: ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΎΡΠ²Π΅ΡΠ° ΠΎΡ API Π±Π°Π½ΠΊΠ°
Π‘ΠΈΡΡΠ°ΡΠΈΡ: ΠΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Π²ΡΠΏΠΈΡΠΊΠΈ ΠΈΠ· Π±Π°Π½ΠΊΠ° ΡΠ΅ΡΠ΅Π· API ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ ΠΎΡΠ²Π΅Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΠ΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»: .
ΠΡΠΈΡΠΈΠ½Π°: ΠΠ°Π½ΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ JSON Ρ BOM (Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π°).
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
Π’Π΅ΠΊΡΡJSON = Π‘ΠΎΠΊΡΠΠ(Π’Π΅ΠΊΡΡJSON); // Π£Π΄Π°Π»ΡΠ΅ΠΌ BOM ΠΈ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ
ΠΡΠ»ΠΈ ΠΠ΅Π²(Π’Π΅ΠΊΡΡJSON, 1) = Π‘ΠΈΠΌΠ²ΠΎΠ»(65279) Π’ΠΎΠ³Π΄Π° // ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π½Π° BOM (UTF-8)
Π’Π΅ΠΊΡΡJSON = Π‘ΡΠ΅Π΄(Π’Π΅ΠΊΡΡJSON, 2);
ΠΠΎΠ½Π΅ΡΠΡΠ»ΠΈ;
ΠΠ΅ΠΉΡ 2: ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ JSON ΠΈΠ· Excel
Π‘ΠΈΡΡΠ°ΡΠΈΡ: ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π» Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Excel Π² JSON, Π½ΠΎ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π² 1Π‘ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Π΅ #.
ΠΡΠΈΡΠΈΠ½Π°: Excel ΡΠΊΡΠ°Π½ΠΈΡΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½Π΅ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ JSON.
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ½Π²Π΅ΡΡΠ΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Python-ΡΠΊΡΠΈΠΏΡ) ΠΈΠ»ΠΈ ΠΎΡΠΈΡΠ°ΠΉΡΠ΅ JSON Π²ΡΡΡΠ½ΡΡ:
Π’Π΅ΠΊΡΡJSON = Π‘ΡΡΠΠ°ΠΌΠ΅Π½ΠΈΡΡ(Π’Π΅ΠΊΡΡJSON, "#", "\#");
ΠΠ΅ΠΉΡ 3: ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Ρ ΡΠ°ΠΉΡΠΎΠΌ Π½Π° Bitrix
Π‘ΠΈΡΡΠ°ΡΠΈΡ: ΠΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ Π·Π°ΠΊΠ°Π·Π° Π½Π° ΡΠ°ΠΉΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° ΠΠ΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»: &.
ΠΡΠΈΡΠΈΠ½Π°: Π Π΄Π°Π½Π½ΡΡ
Π΅ΡΡΡ HTML-ΡΡΡΠ½ΠΎΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, &), ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Ρ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΡΠΉΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JSON:
Π’Π΅ΠΊΡΡJSON = Π‘ΡΡΠΠ°ΠΌΠ΅Π½ΠΈΡΡ(Π’Π΅ΠΊΡΡJSON, "&", "&");
Π’Π΅ΠΊΡΡJSON = Π‘ΡΡΠΠ°ΠΌΠ΅Π½ΠΈΡΡ(Π’Π΅ΠΊΡΡJSON, "&", "\u0026"); // ΠΠΊΡΠ°Π½ΠΈΡΡΠ΅ΠΌ & ΠΊΠ°ΠΊ Unicode
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ HTML-ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ
" β \"
& β \u0026
< β \u003C
> β \u003E
7. Π’Π°Π±Π»ΠΈΡΠ°: Π§Π°ΡΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ-ΠΏΡΠΈΡΠΈΠ½Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
| Π‘ΠΈΠΌΠ²ΠΎΠ» | ΠΡΠΈΡΠΈΠ½Π° ΠΎΡΠΈΠ±ΠΊΠΈ | ΠΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ | ΠΡΠΈΠΌΠ΅Ρ |
|---|---|---|---|
" |
ΠΠ΅ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΊΠ°Π²ΡΡΠΊΠ° Π²Π½ΡΡΡΠΈ ΡΡΡΠΎΠΊΠΈ | ΠΠ°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° \" |
"Text": "Hello "World"" β "Text": "Hello \"World\"" |
\ |
ΠΠ΅ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΡΠ»ΡΡ | ΠΠ°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° \\ |
"Path": "C:\Folder" β "Path": "C:\\Folder" |
(BOM) |
ΠΠ΅Π²ΠΈΠ΄ΠΈΠΌΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π° | Π£Π΄Π°Π»ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 3 Π±Π°ΠΉΡΠ° (UTF-8 BOM) | Π’Π΅ΠΊΡΡJSON = Π‘ΡΠ΅Π΄(Π’Π΅ΠΊΡΡJSON, 2) |
, |
ΠΠΈΡΠ½ΡΡ Π·Π°ΠΏΡΡΠ°Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° | Π£Π΄Π°Π»ΠΈΡΡ Π·Π°ΠΏΡΡΡΡ | {"a":1,} β {"a":1} |
\n, \t |
ΠΠ΅ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ | ΠΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ \\n, \\t |
"Text": "Line1\nLine2" β "Text": "Line1\\nLine2" |
8. ΠΡΠΎΡΠΈΠ»Π°ΠΊΡΠΈΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ JSON Π² 1Π‘
Π§ΡΠΎΠ±Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠΈΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ:
- π§ ΠΡΠ΅Π³Π΄Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΡΠΉΡΠ΅ JSON ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ°ΡΡΠΈΠ½Π³ΠΎΠΌ β Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
- π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ:
ΠΠ°Π½Π½ΡΠ΅ = JSON.ΠΡΠΎΡΠΈΡΠ°ΡΡJSON(Π’Π΅ΠΊΡΡJSON, ΠΡΡΠΈΠ½Π°); // ΠΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ β ΡΡΡΠΎΠ³Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ - π Π’Π΅ΡΡΠΈΡΡΠΉΡΠ΅ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄ Π±ΠΎΠ΅ΠΌ.
- π ΠΠΎΠ³Π³ΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ JSON-Π·Π°ΠΏΡΠΎΡΡ/ΠΎΡΠ²Π΅ΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
- π ΠΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘ β Π² Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ ΡΠ»ΡΡΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ JSON.
πΉ ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ json-serializer ΠΈΠ· GitHub β ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°ΡΠ°ΠΌΠΈ ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ).
πΉ ΠΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ:
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ JSON ΠΎΡ ΠΏΠ°ΡΡΠ½ΡΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ³ΡΡΠ·ΠΊΡ ΠΈΠ· Excel), ΡΡΠ΅Π±ΡΠΉΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠ»ΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ.
Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ 1Π‘ β Π² Π½ΠΎΠ²ΡΡ ΡΠ΅Π»ΠΈΠ·Π°Ρ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³Π° JSON, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ° RFC 8259.
FAQ: Π§Π°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ JSON Π² 1Π‘
ΠΠΎΡΠ΅ΠΌΡ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π΄Π°ΠΆΠ΅ Π½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΌ JSON?
ΠΠ΅ΡΠΎΡΡΠ½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ:
- JSON ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (BOM, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ).
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ°Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
UTF-16Π²ΠΌΠ΅ΡΡΠΎUTF-8). - Π 1Π‘ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ JSON (ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°).
π ΠΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ°:
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ JSON Π² ΡΠ°ΠΉΠ» ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π² hex-ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HxD) β ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠ²ΠΈΡΡ ΡΠΊΡΡΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ.
ΠΠ°ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ JSON Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ? Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠ°ΡΡΠ΅Ρ ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ.
JSON ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ JavaScript). ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΡΠΈΡΡΠ» JSON Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ (// ΠΈΠ»ΠΈ / /), ΠΈΡ
Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ°ΡΡΠΈΠ½Π³ΠΎΠΌ:
Π’Π΅ΠΊΡΡJSON = Π‘ΡΡΠΠ°ΠΌΠ΅Π½ΠΈΡΡ(Π’Π΅ΠΊΡΡJSON, "//", ""); // Π£Π΄Π°Π»ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
Π’Π΅ΠΊΡΡJSON = Π‘ΡΡΠΠ°ΠΌΠ΅Π½ΠΈΡΡ(Π’Π΅ΠΊΡΡJSON, "/*", "");
Π’Π΅ΠΊΡΡJSON = Π‘ΡΡΠΠ°ΠΌΠ΅Π½ΠΈΡΡ(Π’Π΅ΠΊΡΡJSON, "*/", "");
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΎ Β«ΠΊΠΎΡΡΡΠ»ΡΒ». ΠΡΡΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΎΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ JSON Π±Π΅Π· ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π².
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JSON5 Π² 1Π‘?
JSON5 β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ JSON Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², Π½Π΅ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ ΠΈ Ρ.Π΄. ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΠ°ΡΡΠ΅Ρ 1Π‘ Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ.
π§ Π Π΅ΡΠ΅Π½ΠΈΠ΅:
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠΉΡΠ΅ JSON5 Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ JSON Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Node.js ΠΈΠ»ΠΈ Python).
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°ΡΡ Π² JSON ΠΌΠ΅ΠΆΠ΄Ρ 1Π‘ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ?
JSON Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏΠ° ΠΠ°ΡΠ°. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ:
- π
ISO 8601 (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
"2026-05-20T14:30:00Z"). - π Unix timestamp (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄ Ρ 1970 Π³ΠΎΠ΄Π°).
π ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ Π² 1Π‘:
// ΠΠ· ΡΡΡΠΎΠΊΠΈ ISO Π² Π΄Π°ΡΡ 1Π‘
ΠΠ°ΡΠ° = ΠΠ°ΡΡΠΈΡΡΠΠ°ΡΠ°ΠΠ·JSON("2026-05-20T14:30:00Z");
// ΠΠ· Π΄Π°ΡΡ 1Π‘ Π² ΡΡΡΠΎΠΊΡ ISO
Π‘ΡΡΠΎΠΊΠ°ΠΠ°ΡΠ° = Π€ΠΎΡΠΌΠ°Ρ(Π’Π΅ΠΊΡΡΠ°ΡΠΠ°ΡΠ°(), "ΠΠ€=yyyy-MM-ddTHH:mm:ssZ");
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½ΠΎ Π½Π΅ Π² ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ΅?
ΠΠ΅ΡΠΎΡΡΠ½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ:
- π₯ Π Π°Π·Π½ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
- π‘ ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠΊΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅Ρ JSON).
- π ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° 1Π‘ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π»ΠΈΠΌΠΈΡ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ JSON).
π ΠΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ°:
- Π‘ΡΠ°Π²Π½ΠΈΡΠ΅
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡΠ°.Π’Π΅ΠΊΡΡΠ°ΡΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°()Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ. - ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π»ΠΎΠ³ΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° 1Π‘ Π½Π° ΠΎΡΠΈΠ±ΠΊΠΈ.
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ JSON Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ API Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π€ΠΠ‘, ΠΠ€Π ), ΠΈΡ JSON-ΠΎΡΠ²Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π΅Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΡ. ΠΡΠ΅Π³Π΄Π° ΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄ Π±ΠΎΠ΅ΠΌ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π Π²Π΅ΡΡΠΈΡΡ
1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ Π½ΠΈΠΆΠ΅ 8.3.10 ΠΏΠ°ΡΡΠ΅Ρ JSON ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΠΎΠΉΡΠΈΠ² ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.