← ყველა ხელსაწყო

CSV-დან JSON კონვერტერი

გადაიყვანეთ CSV JSON-ში და JSON CSV-ში პირდაპირ ბრაუზერში. გაანაწილეთ სტრიქონები და სათაურები, დაამუშავეთ ბრჭყალები და გამყოფები, მონაცემები ლოკალურად ინახება.

CSV და JSON: ერთი მონაცემის ორი გზა

ცხრილური მონაცემების უმეტესობა ორი ფორმატიდან ერთ-ერთში ხვდება. CSV ცხრილული პროგრამების მშობლიური ენაა: ჩვეულებრივი ტექსტური ფაილი, სადაც ყოველი ხაზი ერთი მწკრივია, სვეტებს კი მძიმეები ჰყოფს. JSON API-ებისა და აპლიკაციების ენაა: სტრუქტურირებული ტექსტური ფორმატი, აგებული ობიექტებისგან (გასაღები-მნიშვნელობის წყვილები) და მასივებისგან (დალაგებული სიები). ისინი ერთსა და იმავე ინფორმაციას სავსებით განსხვავებულ ფორმებში აღწერენ, სწორედ ამიტომ მათ შორის კონვერტაცია ასე ხშირად წარმოიშობა. ეს გვერდი ამ კონვერტაციას ორივე მიმართულებით აკეთებს, მთლიანად თქვენს ბრაუზერში.

CSV ბრწყინვალედ მუშაობს ყველგან, სადაც ცხრილი ბუნებრივია. გამოიტანეთ ანგარიში მონაცემთა ბაზიდან, ჩამოტვირთეთ შეკვეთების სია, ან შეინახეთ ცხრილი Excel-იდან ან Google Sheets-იდან, და თითქმის ყოველთვის CSV-ს მიიღებთ. ის კომპაქტური, ადამიანისთვის წაკითხვადია, და ნებისმიერი ანალიტიკის ხელსაწყო ღია ატყდება მას. JSON ბრწყინვალედ მუშაობს იქ, სადაც პროგრამა პროგრამასთან საუბრობს. REST API-ები მას აგზავნიან და იღებენ, კონფიგურაციის ფაილები მას იყენებენ, JavaScript-ი მას პარსინგის ბიბლიოთეკის გარეშე კითხულობს. როცა ცხრილის ექსპორტს API-ში უნდა ატვირთოთ, ან API-ის პასუხი ცხრილში უნდა გადმოიტანოთ, თქვენ სინამდვილეში ამ ორ სამყაროს შორის თარგმნით.

ციაგოვანი CSV მწკრივების ცხრილი გარდაიქმნება ერთმანეთში ჩალაგებულ JSON ობიექტებად მუქი ინდიგოსფერი ფონის ფონზე
ბრტყელი CSV ცხრილი იკეცება ერთმანეთში ჩალაგებულ JSON ობიექტებად და მასივებად.

როგორ იქცევა მწკრივები და სათაურები ობიექტებად

რუკირება უფრო მარტივია, ვიდრე ერთი შეხედვით ჩანს. CSV ფაილის პირველი ხაზი ჩვეულებრივ სათაურის მწკრივია, და სწორედ ეს სახელები ხდება JSON-ის გასაღებები. ყოველი შემდეგი მწკრივი იქცევა ერთ ობიექტად, სადაც თითოეული უჯრედი შესაბამის სათაურს ეწყვილება. მთელი ფაილი იქცევა ამ ობიექტების მასივად. ასე რომ CSV-ს name,email,age სვეტებით, გადაიქცევა სიად, როგორიცაა [{"name": "Ada", "email": "ada@example.com", "age": "36"}, ...]. საწინააღმდეგო მიმართულებით, JSON-დან CSV-ში, პირველი ობიექტის გასაღებები იკითხება სათაურის ხაზის ასაგებად, შემდეგ კი იწერება ერთი მწკრივი თითო ობიექტზე. ეს სუფთა, პროგნოზირებადი მიმოქცევაა, სანამ თქვენი მონაცემი ჭეშმარიტად ცხრილურია.

ცნობის ღირსი ხაფანგები

CSV უმნიშვნელო ჩანს, მაგრამ რამდენიმე მკვეთრ კუთხეს მალავს. ყველაზე დიდია მძიმეები ველის შიგნით. თუ მისამართი შეიცავს "Berlin, Germany"-ს, გულუბრყვილო მძიმეზე დაყოფა ამ ერთ მნიშვნელობას ორ სვეტად დაგლეჯს. CSV სტანდარტი ამას წყვეტს ასეთი ველების ორმაგ ბრჭყალებში გახვევით, ხოლო ბრჭყალები დაბრჭყალებული ველის შიგნით ორმაგდება (""). კარგი კონვერტერი ამ წესებს პატივს სცემს, ასე რომ თქვენი მონაცემი ჩუმად არ იცვლის სვეტებს. ყურადღება მიაქციეთ გამყოფსაც: ბევრი ევროპული ექსპორტი მძიმის ნაცვლად წერტილ-მძიმეს იყენებს, რადგან მძიმე იქ უკვე ათწილადის გამყოფია. ტაბულაციები და ვერტიკალური ხაზებიც გვხვდება.

უფრო ღრმა განსხვავება ტიპებშია. CSV-ს მონაცემთა ტიპების ცნება საერთოდ არ აქვს. ყველაფერი ტექსტია, ასე რომ რიცხვი 42, ლოგიკური მნიშვნელობა true, და ცარიელი უჯრედი ყველა უბრალო სტრიქონად გამოიყურება. JSON კი, პირიქით, განასხვავებს რიცხვებს, სტრიქონებს, ლოგიკურ მნიშვნელობებს, null-ს და ჩალაგებულ სტრუქტურებს. CSV-ის JSON-ად კონვერტაციისას მნიშვნელობები სტრიქონებად ჩნდება, თუ ხელსაწყოს არ ეთქვა რიცხვებისა და ლოგიკური მნიშვნელობების ინტერპრეტაცია. JSON-ის CSV-ად კონვერტაციას საწინააღმდეგო პრობლემა აქვს: ჩალაგებული ობიექტები და მასივები ბრტყელ ცხრილში კარგად არ ეტევა, ამიტომ ისინი ჩვეულებრივ ბრტყელდება ან იწერება ერთ სტრიქონად, ერთ უჯრედში. ამის წინასწარ ცოდნა გიხსნით თავიდან, თუ რატომ "გამოიყურება არასწორად" სვეტი მოგვიანებით.

ცხრილის ბადე გარდაიქმნება ციაგოვან JSON ბრჭყალების ხედ ცისფერსა და ოქროსფერში
ცხრილის ბადე გარდაიქმნება JSON ბრჭყალების დატოტვილ ხედ.

რეალური მიმოქცევა

აი, სცენარი, რომელიც მუდმივად წარმოიშობა. კოლეგამ გამოგიგზავნათ ახალი მომხმარებლების ცხრილი და გთხოვთ, შიდა API-ის მეშვეობით ატვირთოთ ისინი. API მხოლოდ JSON-ს იღებს. თქვენ ცხრილს გამოიტანთ CSV-ად, აქ ჩასვამთ, და უკან ობიექტების სუფთა მასივს იღებთ, მზადს, თქვენი მოთხოვნის შიგთავსში ჩასაგდებად. მოგვიანებით API დაბრუნებს JSON სიას შექმნილი ჩანაწერების, და ეს იმავე კოლეგას ხელახლა უნდა გადასცეთ განსახილველად. თქვენ JSON-ს ჩასვამთ, CSV-ად გადააკონვერტირებთ, და ის პირდაპირ იხსნება მათ ცხრილში. არც სკრიპტები, არც ინსტალაციები, უბრალოდ ორი სწრაფი თარგმანი ჩვეულებრივი სამუშაო პროცესის შუაგულში.

მხოლოდ ლოკალურად, დანიშნულებით

ეს ყველაფერი თქვენს ბრაუზერში მუშაობს. თქვენი CSV და JSON პარსდება და კონვერტირდება JavaScript-ის მიერ თქვენსავე მანქანაზე, და არაფერი იტვირთება სერვერზე. ეს მნიშვნელოვანია, რადგან ექსპორტები ხშირად შეიცავს რეალურ სახელებს, ელფოსტებს, შეკვეთის დეტალებს ან შიდა იდენტიფიკატორებს, რომლებიც არ ღირს შემთხვევით დაშორებულ სერვისში ჩასმა. აქ მონაცემი არასდროს ტოვებს გვერდს. თუ შედეგის მოწესრიგება გსურთ შემდეგ, ჩვენი JSON ფორმატერი მას ლამაზად დაბეჭდავს და შეამოწმებს, დანარჩენი მონათესავე ფორმატებისთვის კი დაათვალიერეთ ჩვენი მონაცემთა კონვერტერები.

ხშირად დასმული კითხვები

ჩემი მონაცემი იტვირთება სადმე?

არა. კონვერტაცია მთლიანად თქვენს ბრაუზერში ხდება JavaScript-ის გამოყენებით, ასე რომ თქვენი CSV და JSON თქვენსავე მოწყობილობაზე რჩება და არასდროს იგზავნება სერვერზე.

ერევა კონვერტერი მძიმეებს ველების შიგნით?

დიახ. ველები, რომლებიც მძიმეს შეიცავს, CSV-ში ორმაგ ბრჭყალებში უნდა იყოს გახვეული, პარსერი კი ამ ბრჭყალებს პატივს სცემს, ასე რომ მნიშვნელობა ერთ სვეტში რჩება.

რატომ ჩნდება ჩემი რიცხვები JSON-ში ტექსტად?

CSV-ს მონაცემთა ტიპები არ აქვს, ასე რომ ყოველი უჯრედი უბრალო ტექსტია. მნიშვნელობები JSON სტრიქონებად იქცევა, თუ არ გამოიყენება რიცხვისა და ლოგიკური მნიშვნელობის პარსინგი, რადგან საწყისი ფაილი რიცხვისა და სიტყვის განსხვავების საშუალებას არ იძლევა.

რა ემართება ჩალაგებულ JSON-ს CSV-ად კონვერტაციისას?

ბრტყელ ცხრილს ჩალაგებული სტრუქტურის დატევა არ შეუძლია, ამიტომ ჩალაგებული ობიექტები და მასივები ჩვეულებრივ ბრტყელდება ან ერთ სტრიქონად ერთ უჯრედში იწერება.

შემიძლია მძიმის ნაცვლად წერტილ-მძიმის ან ტაბულაციის გამოყენება?

დიახ. ბევრი ექსპორტი, განსაკუთრებით ევროპული, წერტილ-მძიმეს ან ტაბულაციას იყენებს გამყოფად, ხელსაწყოს კი ეს შეუძლია სტანდარტული მძიმის ნაცვლად წაიკითხოს.

კონვერტირდება ორივე მიმართულებით?

დიახ. შეგიძლიათ CSV JSON-ად აქციოთ და JSON უკან CSV-ად, რაც ცხრილებსა და API-ებს შორის მიმოქცევას მარტივს ხდის.