Ի՞նչ է անում այս գործիքը
Այս էջը թույլ է տալիս վերբեռնել մեկ JSON ֆայլ և այն վերածել Excel-ի (XLSX) ձևաչափի: Փոխակերպումը ավտոմատ կերպով տափակեցնում (flatten) է JSON-ի հիերարխիկ կառուցվածքը՝ վերածելով այն հարթ աղյուսակի: Օբյեկտների բանալիները դառնում են սյունակների վերնագրեր, զանգվածների օբյեկտները՝ տողեր, իսկ ներդրված բանալիները ներկայացվում են կետային ուղիներով (օրինակ՝ address.city): Գործիքը ցույց է տալիս արդյունքի նախադիտումը (առաջին 8 տողը և 8 սյունակը), տողերի և սյունակների քանակը, ինչպես նաև ելքային ֆայլի չափը: Դուք կարող եք ներբեռնել պատրաստի աղյուսակը.
Ինչպե՞ս է տարբերվում այս էջը
JSON-ը տիպավորված և ներդրվող ֆորմատ է. այն կարող է պարունակել օբյեկտներ, զանգվածներ, թվեր, բուլյան արժեքներ և null: Մյուս կողմից, հարթ աղյուսակը չի կարող ուղղակիորեն ներկայացնել այդ հիերարխիան: Այս փոխակերպումը կիրառում է տափակեցման կանոն (կետային ուղիների բանալիներ), որն անհրաժեշտ չէ CSV-ից կամ Excel-ից փոխակերպելիս, քանի որ դրանք արդեն հարթ են:
Թիրախային ձևաչափը՝ XLSX, իրենից ներկայացնում է սեղմված ZIP արխիվ XML աշխատանքային գրքով: Այն կարող է բնականաբար պահպանել տվյալների տիպերը, ինչպիսիք են թվերը և բուլյան արժեքները (ի տարբերություն CSV-ի, որը ամեն ինչ վերածում է տեքստի): Սակայն այս գործիքը չի պահպանում ոչ մի բանաձև կամ բջիջների ձևավորում. այն գրում է միայն JSON աղբյուրից ստացված տեսանելի ստատիկ տվյալները:
JSON-ի կառուցվածքը և տափակեցումը
JSON-ը կարող է ունենալ երեք հիմնական կառուցվածքային տարր.
- Օբյեկտ՝ բանալի-արժեք զույգերի անկարգ բազմություն (բանալիները տողեր են, արժեքները՝ ցանկացած տիպ):
- Զանգված՝ արժեքների կարգավորված ցուցակ (յուրաքանչյուր տարր կարող է լինել ցանկացած տիպ):
- Պարզ արժեքներ՝ տող, թիվ, բուլյան, null:
Տափակեցման գործընթացում գործիքը JSON-ը դիտարկում է որպես «ձևավորված աղյուսակի» (table-shaped): Սա նշանակում է, որ մուտքային JSON-ը պետք է լինի կամ օբյեկտների զանգված, կամ զանգվածների զանգված: Մեկ օբյեկտը նույնպես ընդունվում է՝ այն վերածվում է մեկ տողանոց աղյուսակի:
Օրինակ 1. Օբյեկտների զանգված
[
{"name": "Alice", "age": 30, "address": {"city": "Yerevan", "zip": 0010}},
{"name": "Bob", "age": 25, "address": {"city": "Gyumri", "zip": 3100}}
]
Սա կվերածվի աղյուսակի հետևյալ կերպ.
| name | age | address.city | address.zip |
|---|---|---|---|
| Alice | 30 | Yerevan | 0010 |
| Bob 25 | Gyumri | 3100 |
Ներդրված address օբյեկտի բանալիները միացվում են կետով սկզբնական բանալուն:
Օրինակ 2. Զանգվածների զանգված
[
["ID", "Name", "Score"],
[1, "Alice", 95.5],
[2, "Bob", 88.0]
]
Այս դեպքում զանգվածի յուրաքանչյուր տարր դառնում է տող, և վերնագրի տող չի ստեղծվում: Առաջին ներքին զանգվածը պարզապես թերթի առաջին տողն է: Ներդրված զանգվածների տափակեցում տեղի չի ունենում, քանի որ միացնելու բանալիներ չկան:
Ի՞նչ տեղի ունի null-ի և բացակայող դաշտերի հետ: Եթե օբյեկտում ինչ-որ բանալի բացակայում է (կամ հավասար է null-ի), ապա համապատասխան բջիջը XLSX-ում կլինի դատարկ: Սա պահպանում է աղյուսակի միասնականությունը:
Տվյալների տիպերը JSON-ից XLSX
XLSX ձևաչափը թույլ է տալիս առանձնացնել թվերը, տողերը, բուլյան արժեքները և սխալները բջիջներում: CSV-ն, ի հակադրություն, ամեն ինչ գրում է որպես տեքստ, ինչը կարող է խնդիրներ ստեղծել Excel-ում թվաբանական գործողություններ կատարելիս:
| JSON տիպ | XLSX տիպ | Նշում |
|---|---|---|
| տող (string) | Տեքստ (String) | Պահպանվում է ինչպես կա |
| թիվ (number) | Թիվ (Number) | Ամբողջ և լողացող ստորակետով թվեր |
| բուլյան (boolean) | Բուլյան (Boolean) | XLSX-ում ցուցադրվում է որպես TRUE կամ FALSE |
| null | Դատարկ բջիջ | Ոչ մի արժեք |
Կարևոր է. Քանի որ գործիքը չի պահպանում բանաձևերը, ցանկացած JSON-ում նշված փաստացի թիվ կամ բուլյան կմնա այդ տիպում: Եթե JSON-ում թիվը գրված է որպես տող (օրինակ "123"), ապա XLSX-ում այն կլինի տեքստ, այլ ոչ թե թիվ: Սա հաճախ շփոթություն է առաջացնում. օգտատերերը մտածում են, որ ամեն ինչ ավտոմատ կերպով կճանաչվի, բայց JSON-ի տիպավորումն է որոշիչ:
Ներածման և ելքի պայմաններ
Գործիքն ընդունում է միայն մեկ JSON ֆայլ միաժամանակ: Ֆայլի չափը սահմանափակ է՝ առավելագույնը 8 ՄԲ: Եթե ֆայլը գերազանցում է թույլատրելի առավելագույնը, ցուցադրվում է սխալ. «Այս ֆայլը չափազանց մեծ է: Օգտագործեք ‹max› ֆայլ:»:
JSON-ը պետք է լինի «աղյուսակային» (table-shaped), այսինքն՝ օբյեկտների կամ զանգվածների զանգված: Հակառակ դեպքում ստանում եք. «Այս JSON-ը անվավեր է կամ աղյուսակային չէ:»:
Այլ հնարավոր սխալի հաղորդագրություններ.
| Սխալի տեքստը | Պատճառը |
|---|---|
| «Ընտրեք CSV, JSON կամ XLSX ֆայլ:» | Ֆայլի ընդլայնումը չի համապատասխանում: |
| «Այս ֆայլը չափազանց մեծ է: Օգտագործեք ‹max› ֆայլ:» | Ֆայլի չափը գերազանցում է սահմանը: |
| «Այս JSON-ը անվավեր է կամ աղյուսակային չէ:» | JSON-ը չի համապատասխանում ակնկալվող կառուցվածքին: |
| «Այս ֆայլը չունի աղյուսակի տողեր:» | Զանգվածը դատարկ է կամ օբյեկտները չեն պարունակում տվյալներ: |
| «Այս փոխակերպումը չափազանց երկար է տևում: Փորձեք ավելի փոքր ֆայլ:» | Տվյալների մշակման ժամանակը գերազանցել է թույլատրելի շեմը (մոտ 12 վայրկյան): |
| «Փոխակերպումը չեղարկվեց:» | Օգտատերը կամ գործընթացը դադարեցրել է փոխակերպումը: |
Առավելագույնը 10,000 տող և 200 սյունակ: Ելքային XLSX ֆայլը պարունակում է միայն մեկ աշխատանքային թերթ՝ Sheet1 անունով: Այն չի պահպանում JSON-ի ոչ մի բանաձև, ձևավորում, ներդիրներ կամ մի քանի թերթ: Գործիքը աշխատում է բացառապես կլիենտի կողմից (client-side). ֆայլը չի վերբեռնվում սերվեր, ինչը ապահովում է տվյալների գաղտնիությունը:
Ո՞ւմ է պետք այս գործիքը
- API-ից տվյալներ ստացող վերլուծաբաններին: JSON-ը հաճախ է հանդիպում API պատասխաններում: Այս գործիքը թույլ է տալիս առանց կոդ գրելու արագ տեսնել տվյալները Excel-ում:
- Թիմերին, ովքեր աշխատում են Excel-ով: Թիմի անդամը կարող է JSON ֆայլը փոխարկել XLSX-ի, որպեսզի մյուսները կարողանան բացել Excel-ում:
- Նրանց, ովքեր ցանկանում են պահպանել տվյալների տիպերը: CSV-ի փոխարեն XLSX-ն ավելի հուսալի է թվերի ու բուլյանների համար:
- Նրանց, ովքեր ունեն ներդրված կառուցվածքներ և կարիք ունեն դրանք տափակեցնելու: Առանց ձեռքով map-գրելու՝ ավտոմատ կերպով ստեղծվում են կետային ուղիներով սյունակներ:
Հաճախ տրվող հարցեր
1. Ինչո՞ւ է իմ JSON-ը ցույց տալիս «Այս JSON-ը անվավեր է կամ աղյուսակային չէ»:
Ամենահաճախ պատճառը՝ JSON-ը սկսվում է ոչ թե զանգվածով, այլ օբյեկտով (օրինակ՝ {"users": [...]}): Գործիքը պահանջում է, որ ամենավերին մակարդակը լինի զանգված: Փորձեք հանել արտաքին օբյեկտը:
2. Չի՞ պահպանվում բանաձևը, որը ես ունեի Excel-ում:
Ո՛չ: Գործիքը JSON-ի բոլոր արժեքները դիտարկում է որպես տվյալներ, ոչ թե բանաձևեր: Եթե դուք ունեք տող "=SUM(A1:A10)", այն բջիջում կհայտնվի որպես այդ բառացի տեքստը, ոչ թե որպես հաշվարկված գումար:
3. Ինչպե՞ս կարող եմ պահպանել JSON-ում առկա ամսաթվերը: JSON-ը չունի ամսաթվի հատուկ տիպ: Ամսաթվերը սովորաբար պահվում են որպես տող (ISO ձևաչափ) կամ Unix timestamp (թիվ): XLSX-ում դրանք կմնան տող կամ թիվ: Excel-ում կարող եք ձևաչափել դրանք ձեռքով ներբեռնելուց հետո:
4. Ինչո՞ւ է աղյուսակում շատ սյունակ, թեև JSON-ը փոքր է: Դա տեղի է ունենում, երբ ձեր JSON զանգվածի տարբեր օբյեկտներն ունեն տարբեր բանալիներ: Գործիքը միավորում է բոլոր հնարավոր բանալիները (օգտագործելով union) և ստեղծում սյունակներ յուրաքանչյուրի համար:
5. Կարո՞ղ եմ միանգամից մի քանի JSON ֆայլ փոխարկել: Ո՛չ, միայն մեկ ֆայլ միաժամանակ: Պետք է կրկնել գործընթացը յուրաքանչյուր ֆայլի համար:
6. Արդյո՞ք տվյալները պահպանվում են սերվերում: Ո՛չ: Ամբողջ փոխակերպումը կատարվում է ձեր բրաուզերում (client-side): Ոչ մի ֆայլ չի վերբեռնվում որևէ սերվեր: