რა არის JSON? მარტივი სახელმძღვანელო მაგალითებით
JSON (JavaScript Object Notation) არის მარტივი ტექსტური ფორმატი სტრუქტურირებული მონაცემების ჩასაწერად — მაგალითად, მომხმარებლის, შეკვეთის ან პროდუქტების სიის — სახელებისა და მნიშვნელობების წყვილების სახით. ადამიანისთვის ადვილი წასაკითხია და პროგრამებისთვის ადვილი შესაქმნელი და დასამუშავებელი. როცა აპლიკაციები და სერვისები ვებით ცვლიან მონაცემებს, JSON დღეს ყველაზე გავრცელებული ფორმატია.
რატომ არის JSON მნიშვნელოვანი AI-ით აგებისას
JSON-ს მუდმივად შეხვდებით, მაშინაც კი, თუ კოდს არასდროს წერთ:
- API-ები. როცა თქვენი აპლიკაციის ეკრანები backend-იდან მონაცემებს იტვირთავს, ან როცა თქვენი backend გადახდის, ელფოსტის ან AI სერვისს ეძახის, მონაცემები ჩვეულებრივ JSON-ით მოძრაობს. იხილეთ რა არის API.
- პარამეტრების ფაილები. ბევრი პროექტის კონფიგურაციის ფაილი JSON-ია — მაგალითად
package.json, რომელიც JavaScript პროექტის დამოკიდებულებებს ჩამოთვლის. - მონაცემთა ბაზები. Postgres-ს შეუძლია JSON შეინახოს სვეტში (
jsonbტიპი) იმ მონაცემებისთვის, რომლებიც არ ჯდება მარტივ სტრიქონებსა და სვეტებში. იხილეთ რა არის Postgres. - AI-ის გამომავალი. როცა გსურთ, რომ AI მოდელმა დააბრუნოს რამ, რასაც პროგრამა გამოიყენებს — ტეგების სია, ინვოისის ველები — ჩვეულებრივ JSON-ს სთხოვთ.
- შეცდომის შეტყობინებები და ლოგები. ბევრი შეცდომა JSON-ის სახით მოდის, და მისი კითხვა ხშირად ყველაზე სწრაფი გზაა იმის გასაგებად, რა შეცდა.
JSON-ის წაკითხვის უნარი საშუალებას გაძლევთ შეამოწმოთ, რა მიიღო აპლიკაციამ, დაინახოთ გამოტოვებული ველი და პრობლემა ზუსტად აღუწეროთ თქვენს AI ამგებს.
ყოველდღიური ანალოგია
წარმოიდგინეთ ქაღალდის ფორმა: სახელი: ____, ტელეფონი: ____, საინფორმაციო წერილი: ☐ კი ☐ არა. ყოველი ველი არის ეტიკეტი მის გვერდით მდებარე მნიშვნელობით. JSON ეს ფორმაა, ტექსტად დაწერილი მკაცრი განლაგებით, რომელსაც კომპიუტერი გამოცნობის გარეშე კითხულობს. და ფორმების მსგავსად, JSON-შიც შეიძლება იყოს სექციები სექციებში (მისამართის ბლოკი ქუჩით, ქალაქითა და ინდექსით) და სიები (რამდენიმე ტელეფონის ნომერი).
როგორ გამოიყურება JSON
აქ არის ერთი დაჯავშნა JSON-ში:
{
"id": 5001,
"customer": "Lena Park",
"service": "Haircut",
"startsAt": "2026-10-03T14:00:00Z",
"price": 35.5,
"paid": false,
"notes": null,
"extras": ["beard trim", "hot towel"],
"contact": {
"email": "lena@example.com",
"phone": "+44 20 7946 0000"
}
}
წაკითხვა:
- ხვეული ფრჩხილები
{ }ახვევს ობიექტს — სახელისა და მნიშვნელობის წყვილების სიმრავლეს. - თითოეული წყვილი არის
"name": მნიშვნელობა, მძიმეებით გამოყოფილი. - კვადრატული ფრჩხილები
[ ]ახვევს მასივს — მოწესრიგებულ სიას. - ობიექტები და მასივები შეიძლება ერთმანეთში იყოს ჩადგმული, როგორც
contactდაextras.
მნიშვნელობის ექვსი სახე
JSON-ს მხოლოდ ექვსი სახის მნიშვნელობა აქვს. ეს მცირე სია მნიშვნელოვანი მიზეზია, რის გამოც იგი ყველგან მუშაობს.
| ტიპი | მაგალითი | შენიშვნები |
|---|---|---|
| სტრიქონი (ტექსტი) | "Lena Park" | ყოველთვის ორმაგი ბრჭყალებით |
| რიცხვი | 35.5, -2, 1e6 | ბრჭყალების გარეშე; ვალუტის სიმბოლოს გარეშე |
| ლოგიკური (boolean) | true, false | პატარა ასოებით, ბრჭყალების გარეშე |
| null | null | «მნიშვნელობა არ არის» |
| ობიექტი | { "city": "Leeds" } | დასახელებული მნიშვნელობები |
| მასივი | [1, 2, 3] | მოწესრიგებული სია; ელემენტები შეიძლება იყოს ნებისმიერი ტიპის |
თარიღის ტიპი არ არსებობს. თარიღები იწერება როგორც სტრიქონი, ჩვეულებრივ ზემოთ ნაჩვენები ISO 8601 ფორმატით (2026-10-03T14:00:00Z, სადაც Z ნიშნავს UTC-ს). ამ ფორმატზე შეთანხმება თავიდან გაცდენს დროის სარტყელთან დაკავშირებული შეცდომების მთელ კატეგორიას.
მკაცრი წესები (აქედან მოდის შეცდომები)
JSON ვიდრე ჩანს, ისე ნაკლებად მომთმენია. ყველა ეს არასწორია:
{ name: "Lena" } ← გასაღები ორმაგი ბრჭყალების გარეშე
{ 'name': 'Lena' } ← ერთი ბრჭყალი
{ "a": 1, "b": 2, } ← ბოლო მძიმე
{ "a": 1 "b": 2 } ← გამოტოვებული მძიმე
{ "a": 1 // comment } ← კომენტარები არ არის დაშვებული
თითქმის ყველა „Unexpected token“ შეცდომა ერთ-ერთი ამათგანია. JSON ვალიდატორი ან ფორმატერი ზუსტ სტრიქონს აჩვენებს.
სამუშაო მაგალითი: JSON აპლიკაციაში
კლიენტი დაჯავშნის თმის შეჭრას სალონის აპლიკაციაში. აი, სად ჩნდება JSON:
- დაჯავშნის ფორმა აგზავნის ამას აპლიკაციის backend-ზე:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
- Backend ინახავს დაჯავშნას მონაცემთა ბაზაში და პასუხობს სტატუსით
201 Createdდა ამით:
{ "id": 5001, "status": "confirmed" }
- თუ დრო უკვე დაკავებული იყო, მან შეიძლება პასუხად გამოგზავნოს სტატუსი
409 Conflictდა:
{ "error": "slot_taken", "message": "ეს დრო სწორედ ახლა დაიჯავშნა. აირჩიეთ სხვა." }
გვერდი კითხულობს status-ს ან error-ს და აჩვენებს სწორ შეტყობინებას. თუ გვერდზე ცარიელი ეკრანი გჭირდებათ, ბრაუზერის დეველოპერის ხელსაწყოების (Network ჩანართი) გახსნა გაჩვენებთ ამ JSON-ს — ხშირად ყველაზე სწრაფი მინიშნება იმისა, რა შეცდა.
ძირითადი ტერმინები
| ტერმინი | მნიშვნელობა |
|---|---|
| გასაღები (key) | სახელი სახელისა და მნიშვნელობის წყვილში, მაგალითად "email". |
| Parse | JSON-ის ტექსტის გარდაქმნა მონაცემებად, რომელთაც პროგრამა გამოიყენებს. |
| Serialize / stringify | მონაცემების გარდაქმნა JSON-ის ტექსტად გასაგზავნად ან შესანახად. |
| Payload | მოთხოვნაში ან პასუხში გადაცემული მონაცემები. |
| Schema | აღწერა, რა ფორმა უნდა ჰქონდეს მონაცემებს — რომელი ველები, რა ტიპები. JSON Schema ამის დასაწერად სტანდარტული გზაა. |
| JSONB | Postgres-ის ორობითი JSON სვეტის ტიპი, რომლის ინდექსირება და ძიებაც შეიძლება. |
| NDJSON / JSON Lines | თითო ხაზზე ერთი JSON ობიექტი; ჩვეულებრივია ლოგებისა და ნაკადური მონაცემებისთვის. |
გავრცელებული მცდარი წარმოდგენები
- «JSON არის JavaScript.» ის JavaScript-ის სინტაქსიდან წარმოიშვა, მაგრამ ენისგან დამოუკიდებელია; Python, Java, C#, Go და დანარჩენები ყველა კითხულობს მას.
- «რიცხვები ბრჭყალებში კარგია.»
"35"არის სტრიქონი და არა რიცხვი. ისინი შერევა შეცდომებს იწვევს, მაგალითად"35" + "5"გახდება"355". ფული ხშირად უმჯობესია შეინახოთ მთელი სენტების სახით (3550), რათა დამრგვალების პრობლემები თავიდან ავიცილოთ. - «JSON უსაფრთხოა, რადგან მხოლოდ მონაცემია.» JSON შეიძლება ატარებდეს ნებისმიერ რამეს, მათ შორის საიდუმლოებებს. არ ჩადოთ API გასაღებები JSON-ში, რომელიც ბრაუზერში იგზავნება.
- «ყველაფერი JSON სვეტში ჩააგდე.» მოსახერხებელია მოქნილი დამატებითი მონაცემებისთვის, მაგრამ მონაცემები, რომლებზეც ძიებას, ფილტრაციასა და შეერთებას აკეთებთ, ჩვეულებრივ უნდა იყოს ჩვეულებრივ სვეტებში.
- «AI ყოველთვის სწორ JSON-ს აბრუნებს.» მოდელებმა შეიძლება დაამატონ ზედმეტი ტექსტი ან დაარღვიონ ფორმატი. ბევრ პროვაიდერს აქვს სტრუქტურირებული გამოსავლის რეჟიმი; თქვენმა კოდმა მაინც უნდა შეამოწმოს, რაც დაბრუნდა.
რა სთხოვოთ თქვენს AI ამგებს
- «მაჩვენე ამ endpoint-ის მიერ დაბრუნებული JSON-ის მაგალითი.»
- «შეცდომები დააბრუნე JSON-ად,
errorკოდითა და ადამიანისთვის გასაგებიmessage-ით.» - «თარიღები შეინახე ISO 8601 სტრიქონებად UTC-ში და დროის სარტყელში გადაიყვანე მხოლოდ ეკრანზე.»
- «ფასები შეინახე მთელი სენტების სახით.»
- «სერვერზე დაადასტურე შემომავალი JSON და უარყავი მოთხოვნები, სადაც ველები აკლია ან არასწორი ტიპისაა.»
- «როცა AI მოდელს ვეძახით, სთხოვე JSON ზუსტად ამ სტრუქტურით და შეამოწმე მანამდე, სანამ გამოვიყენებ.»
JSON Mythex-ში
Mythex-ში JSON ხელით წერა არ გჭირდებათ — თქვენ აღწერთ, რა გსურთ, და აგენტი წერს კოდს, რომელიც მას აგზავნის და კითხულობს. მაინც სასარგებლოა მისი ამოცნობა: როცა რამე ირღვევა, JSON-ის შეცდომის ჩასმა ჩატში აგენტს ზუსტ მინიშნებას აძლევს. დოკუმენტაციის REST API backend რეცეპტი თავიდანვე ითხოვს «მკაფიო JSON შეცდომებს», ხოლო integrate any API რეცეპტი გარე სერვისების გამოძახებას ფარავს. უფრო ფართო სურათისთვის იხილეთ REST vs GraphQL და როგორ გამოვასწოროთ AI-ით აგებული აპლიკაციის შეცდომები.
კითხვები
რა არის JSON მარტივად რომ ვთქვათ?
JSON (JavaScript Object Notation) არის ტექსტური ფორმატი სტრუქტურირებული მონაცემების ჩასაწერად სახელებისა და მნიშვნელობების სახით, მაგალითად «name»: «Lena». თითქმის ყველა ვებ API მას იყენებს მონაცემების გასაცვლელად, ხოლო ბევრი აპლიკაცია პარამეტრებისა და შენახული მონაცემებისთვის იყენებს.
JSON პროგრამირების ენაა?
არა. JSON მონაცემთა ფორმატია და არა ენა. ის თავისით ვერაფერს აკეთებს — მხოლოდ მონაცემებს აღწერს. მიუხედავად იმისა, რომ JavaScript-იდან წარმოიშვა, თითქმის ყველა პროგრამირების ენას შეუძლია მისი წაკითხვა და ჩაწერა.
რა განსხვავებაა JSON-სა და JavaScript ობიექტს შორის?
გარეგნულად ჰგავს, მაგრამ JSON უფრო მკაცრია. JSON-ში ყველა გასაღები ორმაგ ბრჭყალებში უნდა იყოს, სტრიქონები ორმაგი ბრჭყალებით იწერება, კომენტარები არ არის დაშვებული, ბოლო მძიმეები არ შეიძლება, ხოლო მნიშვნელობები შემოიფარგლება სტრიქონებით, რიცხვებით, true, false, null, ობიექტებითა და მასივებით.
რატომ მეუბნება ჩემი JSON, რომ არასწორია?
ჩვეულებრივი მიზეზებია: ბოლო ელემენტის შემდეგ მძიმე, ერთი ბრჭყალი ორმაგის ნაცვლად, ელემენტებს შორის გამოტოვებული მძიმე, დაუხურავი ფრჩხილი ან კომენტარი. ჩასვით JSON-ის ვალიდატორში და ის ხაზსაც მიგითითებთ.