Ի՞նչ է անում այս գործիքը
Էջը թույլ է տալիս վերբեռնել JSON ֆայլ (կամ քաշել ու գցել այն) և այն վերածել CSV ձևաչափի։ Օգտագործողն ընտրում է բաժանարարը (ստորակետ, կետ-ստորակետ կամ տաբուլյացիա) ելքային CSV-ի համար, դիտում է աղյուսակի նախադիտումը և ներբեռնում փոխարկված ֆայլը։ Ամբողջ մշակումը կատարվում է զննարկիչում. ոչ մի տվյալ չի վերբեռնվում որևէ սերվեր։ Սա առանցքային տարբերություն է նմանատիպ այլ գործիքներից, հատկապես երբ խոսքը վերաբերում է գաղտնիության զգայուն աշխատանքային հոսքերին։
Ինչո՞վ է այն տարբերվում
Ի տարբերություն CSV-ից Excel կամ Excel-ից JSON փոխարկումների, այս ուղղությունը հարթեցնում է հիերարխիկ, տիպավորված տվյալների ձևաչափը՝ վերածելով այն հարթ, ոչ տիպավորված աղյուսակի։ JSON-ն աջակցում է օբյեկտներին, զանգվածներին, թվերին, բուլյան արժեքներին և null-ին՝ ներդրված կառույցներում։ CSV-ն չունի տիպեր, չունի ներդրում և չունի թերթեր։ Փոխարկումն ընկնում է տիպերի ամբողջ տեղեկատվությունը, ներդրված կառույցները, բազմաթիվ թերթերը (JSON-ում դրանք գոյություն չունեն) և ձևաչափումը։ Ներդրված JSON օբյեկտները հարթ CSV-ում ներկայացնելու համար գործիքը հարթեցնում է օբյեկտի բանալիները՝ օգտագործելով կետային նշումը (dot‑path notation), օրինակ՝ address.city։ Օբյեկտների զանգվածները դառնում են աղյուսակի տողեր, իսկ զանգվածների զանգվածները մնում են որպես տողեր։ Քանի որ CSV-ն օգտագործում է բաժանարարներ, ներկառուցված ստորակետներն ու տողադարձերը պետք է փակցվեն չակերտների մեջ – գործիքը դա անում է ավտոմատ, սակայն թվերի սկզբի զրոները կարող են կորչել։ Դուք պետք է որոշեք, թե ինչպես պետք է ներկայացվեն ներդրված դաշտերը նախքան փոխարկումը (գործիքն օգտագործում է կետային ուղիները լռելյայն)։
Ինչպես է աշխատում փոխարկումը
Փոխարկման գործընթացը կարելի է բաժանել մի քանի փուլերի.
- Վավերացում – Ստուգվում է, որ JSON ֆայլը գոյություն ունի, ունի թույլատրելի չափ և «աղյուսականման» կառույց է (միայն օբյեկտների զանգված կամ զանգվածների զանգված)։ Հակառակ դեպքում ցուցադրվում է սխալի հաղորդագրություն, օրինակ՝ «This JSON is invalid or not table‑shaped.»:
- Վերլուծություն – JSON-ը վերլուծվում է հիշողության մեջ։ Եթե առաջին մակարդակը զանգված է, ապա յուրաքանչյուր տարր մեկնաբանվում է որպես տող։
- Օբյեկտների զանգված – յուրաքանչյուր օբյեկտ դառնում է տող, օբյեկտի բանալիները՝ սյունակներ, իսկ ներդրված օբյեկտները հարթեցվում են կետային ուղիների միջոցով (օրինակ
address.city`)։ - Զանգվածների զանգված – յուրաքանչյուր ներքին զանգված դառնում է տող, տարրերը դառնում են սյունակներ (առանց օբյեկտի բանալիների)։
- Օբյեկտների զանգված – յուրաքանչյուր օբյեկտ դառնում է տող, օբյեկտի բանալիները՝ սյունակներ, իսկ ներդրված օբյեկտները հարթեցվում են կետային ուղիների միջոցով (օրինակ
- Տիպերի կորուստ – JSON-ի բոլոր տիպերը (թվեր, բուլյան, null) վերածվում են տողերի CSV-ում։ Օրինակ,
123.45-ը դառնում է «123.45»,true-ը՝ «true»,null-ը՝ «null» (կամ դատարկ տող, կախված իրականացումից, բայց գործիքը արժեքը վերածում է տողի)։ Սկզբի զրոները (օր.00123) կորցնում են, քանի որ CSV-ն դրանք մեկնաբանում է որպես թվեր, եթե հատուկ չեն փակցվել։ - CSV ձևավորում – Գործիքը ավելացնում է բաժանարարներ (ընտրված ստորակետ, կետ-ստորակետ կամ տաբուլյացիա) և ավտոմատ կերպով փակցնում է արժեքները չակերտների մեջ, եթե դրանք պարունակում են բաժանարար, տողադարձ կամ չակերտ։ CSV ստանդարտը (RFC 4180) պահանջում է, որ չակերտներ պարունակող դաշտերը փակցվեն կրկնակի չակերտներով, և գործիքը հետևում է այդ կանոնին։
- Նախադիտում – Օգտագործողը տեսնում է աղյուսակը մինչև ներբեռնումը, ինչպես նաև տողերի և սյունակների քանակը, ելքային ֆայլի չափը։
- Ներբեռնում – CSV ֆայլը ստեղծվում է Blob-ի միջոցով և առաջարկվում է ներբեռնել։
Այս գործընթացը լիովին աշխատում է զննարկչի կողմում. տվյալները երբեք չեն հեռանում ձեր սարքից։ Սա նշանակում է, որ դուք կարող եք աշխատել նույնիսկ անցանց ռեժիմում, բայց գործիքը պահանջում է սկզբնական բեռնում (որպես վեբ էջ)։
Մուտքային և ելքային տվյալներ
| Մուտք | Ելք |
|---|---|
| Մեկ JSON ֆայլ (ընդունվում են նաև CSV, XLSX, սակայն այս էջի համար միայն JSON-ն է համապատասխան) | CSV ֆայլ՝ պատրաստ ներբեռնման |
| CSV բաժանարարի ընտրություն (ստորակետ, կետ-ստորակետ, տաբուլյացիա) | Աղյուսակի նախադիտում |
| Տողերի և սյունակների քանակ | |
| Ելքային ֆայլի չափը (բայթերով) |
Գործիքը ցույց է տալիս նաև սխալի հաղորդագրություններ հետևյալ դեպքերում.
- «Choose one file first.» – եթե ֆայլ ընտրված չէ:
- «Choose a CSV, JSON or XLSX file.» – եթե ֆայլի տեսակը չի համապատասխանում:
- «Choose a different output format.» – եթե ելքային ձևաչափը չի համընկնում CSV-ի հետ (այլ էջերում):
- «This file is too large. Use a file under ‹max›.» – գերազանցվել է ֆայլի առավելագույն չափը:
- «This table has more than ‹max› rows.» – տողերի առավելագույն քանակի գերազանցում:
- «This table has more than ‹max› columns.» – սյունակների առավելագույն քանակի գերազանցում:
- «This JSON is invalid or not table‑shaped.» – JSON-ը սխալ է կամ ոչ աղյուսականման:
- «Could not convert this file.» – ընդհանուր սխալ:
- «Conversion cancelled.» – չեղարկում:
- «This conversion is taking too long. Try a smaller file.» – ժամանակի սահմանափակում:
Սահմանափակումներ և հնարավոր խնդիրներ
CSV-ի հիմնական սահմանափակումը տիպերի և կառույցի կորուստն է։ Քանի որ JSON-ը կարող է ունենալ խիստ ներդրված օբյեկտներ, հարթեցումը պարտադիր է, սակայն այն կարող է առաջացնել սյունակների մեծ քանակ, եթե ներդրման խորությունը մեծ է։ Օրինակ, համարենք հետևյալ JSON-ը.
[
{
"name": "Alice",
"address": {
"city": "Yerevan",
"geo": {
"lat": 40.18,
"lng": 44.51
}
}
}
]
CSV-ում այն կունենա երեք սյունակ՝ name, address.city, address.geo.lat, address.geo.lng (եթե երկրորդ օբյեկտն ունի նույն կառույցը, հակառակ դեպքում կարող են առաջանալ բաց թողնված արժեքներ)։ Կան նաև հետևյալ կետերը.
- Թվային սկզբի զրոներ – Եթե JSON-ում կա «00123», CSV-ն այն կվերածի 123, քանի որ CSV-ն չի պահպանում ձևաչափումը։ Խնդիրը կարելի է մեղմել՝ արժեքը տող դարձնելով JSON-ում (օր.
"00123"), բայց գործիքը չի կարող իմանալ, թե որ արժեքը պետք է պահպանել։ - Ներդրված ստորակետեր և տողադարձեր – CSV ստանդարտը պահանջում է չակերտավորում, գործիքը դա անում է ավտոմատ, սակայն եթե արժեքն արդեն պարունակում է չակերտներ, դրանք կրկնապատկվում են (օր.
He said "hello"դառնում է"He said ""hello""")։ - Բազմաթիվ թերթերի բացակայություն – JSON-ը չունի թերթերի հայեցակարգ, այնպես որ փոխարկումը մեկ թերթով CSV է։ Եթե JSON-ը պարունակում է մի քանի անկախ զանգվածներ, դրանք չեն կարող միաժամանակ փոխարկվել. գործիքը կփորձի մեկնաբանել ամբողջ ֆայլը որպես մեկ աղյուսակ։
- Զանգվածների ներդրում – Եթե JSON-ում օբյեկտի դաշտը զանգված է (օր.
tags: ["a","b"]), ապա այն կվերածվի մեկ տողի, օրինակ"a,b"` (եթե բաժանարարը ստորակետ է, կարող է շփոթություն առաջանալ)։ Գործիքն այս դեպքում չի ստեղծում մի քանի տող, քանի որ այն հարթեցնում է միայն օբյեկտները, ոչ թե զանգվածները։ - Client-side processing – Բոլոր սահմանափակումները (ֆայլի չափ, տողերի/սյունակների քանակ) կիրառվում են զննարկչի հիշողության սահմանափակումների պատճառով։ Խոշոր ֆայլերը կարող են հանգեցնել դանդաղ աշխատանքի կամ ժամանակի գերազանցման։
Ում համար է այս գործիքը
- API մշակողների համար – Հաճախ API-ները վերադարձնում են JSON, որը պետք է ներմուծել Excel կամ Google Sheets: Գործիքը թույլ է տալիս արագորեն ստանալ CSV՝ առանց սերվերային գործիքների օգտագործման:
- Տվյալների վերլուծաբանների համար – Երբ պետք է կառուցվածքային JSON տվյալները վերածել հարթ աղյուսակի՝ հետագա վերլուծության կամ զեկույցների համար:
- Գաղտնիության զգայուն աշխատանքային հոսքերում – Քանի որ տվյալները չեն լքում զննարկիչը, կարելի է աշխատել անձնական տվյալների հետ՝ առանց դրանք երրորդ կողմի սերվերին ուղարկելու:
- Համակարգչային ոչ մասնագետների համար – Օգտագործողները, ովքեր ստանում են JSON ֆայլ (օրինակ՝ կայքի արտահանում) և ցանկանում են բացել այն Excel-ում, կարող են օգտվել այս գործիքից՝ առանց ծրագրավորման հմտությունների:
- Տեղայնացման կարիքների համար – Երբ անհրաժեշտ է CSV ստորակետի փոխարեն կետ-ստորակետով (օրինակ՝ որոշ եվրոպական երկրներում Excel-ի լռելյայն բաժանարարը կետ-ստորակետն է), գործիքն առաջարկում է ընտրել բաժանարարը:
Հաճախ տրվող հարցեր (FAQ)
1. Կարո՞ղ եմ փոխարկել մի քանի JSON ֆայլ միաժամանակ:
Ոչ, գործիքը ընդունում է միայն մեկ ֆայլ: Եթե ունեք մի քանի ֆայլեր, պետք է դրանք մեկ առ մեկ փոխարկել:
2. Ինչու՞ են իմ թվերի սկզբի զրոները կորչում:
CSV ձևաչափը չի պահպանում ձևաչափման մասին տեղեկությունը: Երբ թվային արժեքը (օր. 007) գրվում է CSV-ում, այն մեկնաբանվում է որպես թիվ 7: Եթե անհրաժեշտ է պահպանել սկզբի զրոները, JSON-ում արժեքը պետք է լինի տող (չակերտներով): Գործիքը ավտոմատ կերպով չի կարող իմանալ, թե որ արժեքները պետք է մնան տող:
3. Ի՞նչ է նշանակում «table‑shaped» JSON:
Այն նշանակում է, որ JSON-ի արմատային կառույցը պետք է լինի օբյեկտների միատարր զանգված (բոլոր օբյեկտներն ունեն նույն բանալիները) կամ զանգվածների զանգված (ներքին զանգվածները նույն երկարությամբ): Այլ կառույցները, ինչպիսիք են մեկ օբյեկտը կամ խառը տիպերի զանգվածը, չեն համարվում աղյուսականման:
4. Կարո՞ղ եմ փոխարկել JSON-ը, որը պարունակում է nested arrays (ներքին զանգվածներ):
Այո, եթե JSON-ը զանգվածների զանգված է (array of arrays), ապա յուրաքանչյուր ներքին զանգված դառնում է տող, իսկ տարրերը՝ սյունակներ: Եթե ներքին զանգվածները տարբեր երկարություն ունեն, ապա ավելի կարճ տողերում բաց թողնված սյունակները կլինեն դատարկ:
5. Ո՞ր բաժանարարն ընտրել:
Դա կախված է նրանից, թե որ ծրագրում եք բացել CSV-ն: Excel-ը (Windows-ի համար) հաճախ սպասում է ստորակետ, բայց որոշ տեղայնացումներում (օր.՝ ռուսական, գերմանական) կետ-ստորակետ: Google Sheets-ը սովորաբար աշխատում է ստորակետով: Տաբուլյացիան հարմար է, եթե ցանկանում եք ներմուծել տվյալները տեքստային խմբագրիչներում:
6. Արդյո՞ք գործիքը աշխատում է անցանց:
Այո, քանի որ բոլոր հաշվարկները կատարվում են զննարկչում, էջը մեկ անգամ բեռնելուց հետո այն կարող է աշխատել առանց ինտերնետ կապի (եթե զննարկիչը թույլ է տալիս Service Workers, բայց ստանդարտ վեբ էջի համար առնվազն մեկ անգամ պետք է բեռնել): Այնուամենայնիվ, տվյալները երբեք չեն լքում ձեր համակարգիչը: