Ինչպես է աշխատում CSV-ից JSON փոխարկումը
Գործիքը ստանում է CSV ֆայլ և այն վերածում JSON-ի: Օգտագործողը կարող է ֆայլը քաշել և գցել պատուհանի մեջ կամ ընտրել սարքից: Էջի հիմնական նպատակը CSV → JSON փոխարկումն է: Եթե ֆայլը CSV է, անհրաժեշտ է նշել սահմանազատիչը՝ ստորակետ (comma), կետ-ստորակետ (semicolon) կամ տաբուլյացիա (tab). Փոխարկումից հետո ցուցադրվում է նախադիտումը (առաջին 8 տողերը և 8 սյունակները), տողերի ու սյունակների քանակը, ելքային ֆայլի չափը, և կարելի է ներբեռնել արդյունքը.
Ամբողջ մշակումը կատարվում է զննարկչի կողմից՝ առանց սերվերին տվյալներ ուղարկելու. Սա նշանակում է, որ զգայուն տվյալները (հաճախորդների ցուցակներ, ֆինանսական տվյալներ) չեն լքում օգտագործողի սարքը. Միակ պայմանն այն է, որ ֆայլը չգերազանցի չափի սահմանաչափը՝ 8 ՄԲ. Եթե ֆայլը չափազանց մեծ է, էկրանին կհայտնվի հաղորդագրություն՝ «Այս ֆայլը չափազանց մեծ է: Օգտագործեք ‹max› չափից փոքր ֆայլ».
CSV-ի և JSON-ի հիմնարարկան տարբերությունները
CSV-ն հարթ տեքստային ձևաչափ է, որտեղ բոլոր բջիջները տողեր են. JSON-ն ապահովում է թվեր, բուլյան արժեքներ, null, զանգվածներ և nested կառուցվածքներ. CSV → JSON փոխարկման ժամանակ սյունակները դառնում են բանալիներ (keys), տողերը՝ օբյեկտներ, և ամբողջը ձևավորում է օբյեկտների զանգված. Սակայն, քանի որ CSV-ն չունի տիպային տեղեկատվություն, յուրաքանչյուր դաշտ JSON-ում մնում է տող (string). Թվերը (գներ, քանակներ), ամսաթվերը և զրոյով սկսվող իդենտիֆիկատորները (փոստային կոդեր, ապրանքային կոդեր) ավտոմատ չեն վերածվում Number կամ Date տիպի. դրանք մնում են տողեր, մինչև օգտագործողը ձեռքով փոխի վերբեռնումից հետո.
Այլ կարևոր սահմանափակում. CSV-ն խիստ աղյուսակային է, ուստի հնարավոր չէ ստեղծել nested JSON (օբյեկտներ օբյեկտների ներսում) առանց լրացուցիչ կանոնների. Գործիքը տալիս է միայն հարթ օբյեկտների զանգված. Հակառակ փոխարկումը՝ JSON → CSV, պահանջում է flattened տվյալներ, սակայն այս էջը զբաղվում է միայն CSV → JSON-ով.
Սահմանազատիչի ընտրությունը և տարածված սխալները
CSV անվանումը թարգմանվում է որպես «comma-separated values», բայց գործնականում շատ ֆայլեր օգտագործում են այլ սահմանազատիչներ. Գործիքն առաջարկում է երեք տարբերակ.
- Comma (
,): ստանդարտը, բայց հաճախ հակամարտում է թվերում ստորակետերի հետ (օրինակ՝ եվրոպական 1.000,50 գրելաձև). - Semicolon (
;): տարածված է Excel-ի եվրոպական տեղայնացումներում, որտեղ ստորակետը օգտագործվում է տասնորդական բաժանարարի համար. - Tab (
\t): TSV (tab-separated values) ֆայլեր, հաճախ տեքստային տվյալների համար, որտեղ մեջբերումները նվազագույն են.
Սխալ սահմանազատիչ ընտրելը կհանգեցնի սխալ վերլուծության. Օրինակ, եթե CSV-ն օգտագործում է կետ-ստորակետ, բայց ընտրված է ստորակետ, ապա ամբողջ տողը կմեկնաբանվի որպես մեկ սյունակ, կամ կբաժանվի ոչ ճիշտ տեղերում.
CSV-ի մեջբերման կանոնները (quoting rules) լիովին ստանդարտացված չեն. Ներկառուցված ստորակետերը մեջբերված դաշտերի ներսում, տողի ընդհատումները բջիջներում և չփախած (unescaped) մեջբերումները տարածված ձախողումների պատճառ են. Եթե ֆայլը պարունակում է այդպիսի անկանոնություններ, գործիքը կցուցադրի «Այս CSV-ն հնարավոր չէր վերլուծել».
Տվյալյիների տիպերը, զրոները և ամբողջականությունը
CSV-ի յուրաքանչյուր արժեք տեքստ է. Երբ տվյալները վերածվում են JSON-ի, դրանք մնում են տողեր. Սա կարևոր է զրոյով սկսվող նույնականացման կոդերի համար. Օրինակ, ամերիկյան ZIP կոդ 01234-ը CSV-ում գրված է որպես «01234». JSON-ում այն կմնա «01234», քանի որ գործիքը չի փորձում այն դարձնել 1234 թիվ. Եթե դուք հետագայում JSON-ը ներմուծեք JavaScript-ով կամ Python-ով, լռելյայն տիպային կերպափոխումը կարող է հեռացնել սկզբնական զրոները. Այդ իսկ պատճառով գործիքը պահպանում է տողերը այնպիսին, ինչպիսին կան.
Տողերի ներսում տողերի ընդհատումները (line breaks) պահպանվում են որպես JSON տողերում. Սա թույլ է տալիս աշխատել բազմատող դաշտերի հետ, բայց նաև կարող է բարդացնել հետագա մշակումը.
Եթե CSV-ն ընդհանրապես չունի տվյալների տողեր (միայն վերնագիր կամ դատարկ), գործիքը կցուցադրի «Այս ֆայլը չունի աղյուսակային տողեր».
Սխալների կառավարումը և սահմանափակումները
Գործիքը մի շարք հստակ սխալի հաղորդագրություններ է տալիս, որոնք ծածկում են ամենատարածված խնդիրները.
| Իրավիճակ | Հաղորդագրություն |
|---|---|
| Ֆայլը չի ընտրվել | «Սկզբում ընտրեք մեկ ֆայլ» |
| Սխալ ֆայլի տեսակ | «Ընտրեք CSV, JSON կամ XLSX ֆայլ» |
| CSV-ն չի կարող վերլուծվել (սխալ մեջբերումներ, անհամապատասխան սյունակների քանակ) | «Այս CSV-ն հնարավոր չէր վերլուծել» |
| Ֆայլը չունի տվյալների տողեր | «Այս ֆայլը չունի աղյուսակային տողեր» |
| Տողերի քանակը գերազանցում է սահմանը (10,000 տող) | «Այս աղյուսակն ունի ավելի քան ‹max› տող» |
| Սյունակների քանակը գերազանցում է սահմանը (200 սյունակ) | «Այս աղյուսակն ունի ավելի քան ‹max› սյունակ» |
| Ֆայլի չափը գերազանցում է առավելագույնը (8 ՄԲ) | «Այս ֆայլը չափազանց մեծ է: Օգտագործեք ‹max› չափից փոքր ֆայլ» |
| Փոխարկումը տևում է չափազանց երկար (ավելի քան 12 վայրկյան) | «Այս փոխարկումը չափազանց երկար է տևում: Փորձեք ավելի փոքր ֆայլ» |
‹max›-ը փոխարինվում է իրական սահմանաչափով (օրինակ՝ 10000 տող, 200 սյունակ, 8 ՄԲ). Սահմանաչափերը նախատեսված են զննարկչի հիշողության և աշխատանքի արագության համար. Եթե ձեր ֆայլը շատ մեծ է, կարող եք այն բաժանել մասերի.
Ում է պետք այս գործիքը
- Ծրագրավորողներ, ովքեր ստանում են CSV արտահանում տվյալների բազայից կամ աղյուսակից և պետք է տվյալները փոխանցեն JavaScript հավելվածին կամ API-ին, որն ակնկալում է JSON.
- Տվյալյիների վերլուծաբաններ, ովքեր ցանկանում են հին CSV հասցեի ֆայլը (օրինակ՝ զրոյով սկսվող փոստային կոդերով) վերածել JSON-ի՝ պահպանելով զրոները, առանց ձեռքով միջամտության.
- Թիմեր, որոնք համատեղում են աշխատանքը տեխնիկական և ոչ տեխնիկական անդամների միջև. մեկը օգտագործում է Excel/CSV, մյուսը՝ JSON. Առանց զգայուն տվյալները սերվեր վերբեռնելու.
- Ուսանողներ և հետազոտողներ, ովքեր մեկանգամյա CSV աղյուսակը պետք է վերածեն ծրագրավորման հանձնարարության համար.
Գործիքի հիմնական առավելությունը տվյալների գաղտնիությունն է. ամեն ինչ մնում է զննարկչում. Սա մեծապես տարբերվում է առցանց փոխարկիչներից, որոնք պահանջում են ֆայլի վերբեռնում.
Հաճախ տրվող հարցեր (FAQ)
1. CSV-ում իմ ամսաթվերն ինչո՞ւ JSON-ում մնում են տողեր, այլ ոչ թե Date-ներ:
CSV-ն տիպային տեղեկատվություն չունի. Գործիքը չի փորձում կռահել ամսաթվերի ձևաչափը, քանի որ դա կարող է հանգեցնել սխալների. Բոլոր արժեքները մնում են տողեր. Եթե Ձեզ անհրաժեշտ են Date տիպեր, պետք է ձեռքով փոխարկել JSON-ը ներբեռնումից հետո՝ համապատասխան ծրագրավորման լեզվում.
2. Ինչու՞ է գործիքը ցույց տալիս «Այս CSV-ն հնարավոր չէր վերլուծել»:
Ամենից հաճախ պատճառը սխալ մեջբերված դաշտերն են, ներկառուցված տողերի ընդհատումները առանց մեջբերումների, կամ սյունակների անհամապատասխան քանակը. Ստուգեք՝ արդյոք CSV-ի յուրաքանչյուր տող ունի նույն թվով սյունակներ, և որ մեջբերված դաշտերը ճիշտ են փակված.
3. Կարո՞ղ եմ փոխարկել TSV (tab-separated) ֆայլը:
Այո, ընտրեք «Tab» սահմանազատիչը. TSV-ները հաճախ ավելի քիչ խնդիրներ ունեն մեջբերումների հետ, քանի որ տաբուլյացիան հազվադեպ է հայտնվում տվյալների մեջ.
4. Ինչպե՞ս պահպանել զրոյով սկսվող կոդերը JSON-ում:
Գործիքը դրանք արդեն պահպանում է որպես տողեր. Երբ JSON-ը բեռնեք JavaScript-ում, օգտագործեք JSON.parse() և այնուհետև մի՛ կիրառեք Number() կամ parseInt() առանց զգուշության. Python-ում import json-ից հետո արժեքները կլինեն str.
5. Ինչու՞ չեմ կարող ստեղծել nested JSON, օրինակ՝ մեկ սյունակում զանգված:
CSV-ն հարթ աղյուսակ է. Nested կառուցվածքներ ստանալու համար անհրաժեշտ են լրացուցիչ կանոններ, որոնք գործիքը չի աջակցում. Այլ գործիքներ, ինչպիսին է jq-ն, կարող են օգնել փոխարկումից հետո.
6. Ֆայլի ո՞ր առավելագույն չափն է թույլատրվում:
Սահմանը 8 ՄԲ է. Գործիքը կցուցադր