JSON to CSV: Pag-flatten ng Hierarchical Data Patungo sa Tabular Format
Ang page na ito ay tumatanggap ng uploaded o ini-drag na JSON file at kino-convert ito sa CSV. Pinipili mo ang delimiter (comma, semicolon, o tab), may preview ng table, at pwedeng i-download ang converted file. Lahat ng processing ay nangyayari sa iyong browser – walang data na naa-upload sa anumang server.
Bakit Iba ang Direction na Ito
Ang JSON-to-CSV ay hindi tulad ng CSV-to-Excel o Excel-to-JSON. Dito, pini-flatten mo ang isang hierarchical, may-type na data format papunta sa isang flat, walang-type na table. Ang JSON ay sumusuporta sa objects, arrays, numbers, booleans, at null sa loob ng nested structures. Ang CSV ay walang types, walang nesting, at walang sheets. Lahat ng type information, nested structure, at formatting ay nawawala.
Ang conversion na ito ay nag-flatten ng JSON object keys gamit ang dot‑path notation – halimbawa, ang address.city ay nagiging column name kung ang JSON ay may nested object na address na may property na city. Ang arrays of objects ay nagiging rows ng table; ang arrays of arrays ay nananatiling rows. Dahil gumagamit ng delimiter ang CSV, ang embedded commas at line breaks ay dapat i-quote – awtomatiko itong ginagawa ng tool, ngunit ang leading zeros sa numbers ay posibleng mawala.
Paano Gumagana ang Pag-flatten gamit ang Dot-Path Notation
Kapag may nested object ka sa JSON, hindi ito pwedeng i-represent nang direkta sa isang two-dimensional na CSV table. Ang tool ay gumagamit ng dot-path flattening para i-convert ang nested structure sa isang set ng columns.
Halimbawa, ang JSON na ito:
[
{
"name": "Juan",
"address": {
"city": "Manila",
"zip": 1000
}
},
{
"name": "Maria",
"address": {
"city": "Cebu",
"zip": 6000
}
}
]
Ay nagiging CSV na may ganitong columns:
| name | address.city | address.zip |
|---|---|---|
| Juan | Manila | 1000 |
| Maria | Cebu | 6000 |
Ang dot‑path notation ay nag-fla-flatten ng isang level. Kung may mas malalim na nesting, halimbawa, contact.phone.home, ang path ay lalawak nang naaayon. Hindi sinusubukan ng tool na "i-unflatten" ang maraming nested path sa magkakahiwalay na row; pinapanatili nito ang lahat sa isang row bawat source object. Kung ang dalawang object ay may magkaibang set ng keys, ang unyon ng lahat ng keys ang magiging header; ang mga nawawalang value ay magiging empty cells.
Anong Uri ng JSON ang Tinatanggap ng Tool?
Ang tool ay nangangailangan ng table‑shaped na JSON. Ibig sabihin, ang JSON file ay dapat na isang array of objects (bawat object ay isang row, ang keys ay columns) o isang array of arrays (bawat inner array ay isang row). Kung ang JSON ay hindi table‑shaped, makikita mo ang mensahe: "Ang JSON na ito ay hindi balido o hindi hugis-talahanayan."
Ang table‑shaped JSON ay madalas na nagmumula sa:
- API responses – maraming REST API ang nagre-return ng array of objects sa loob ng isang
dataoresultsproperty. - Database exports – ang database query results ay madalas na array of objects.
- Generated data – mula sa programming scripts o data pipeline.
Hindi table‑shaped ang JSON kung ito ay isang single object (hindi array), kung ang array ay naglalaman ng mixed types (halimbawa, may objects at arrays na magkakahalo), o kung walang consistent na structure sa bawat elemento.
Pagpili ng Delimiter: Comma, Semicolon, o Tab
Ang CSV ay nangangahulugang "Comma‑Separated Values," ngunit sa practice, maraming CSV implementations ang gumagamit ng ibang delimiter. Ang tool ay nagbibigay ng tatlong option:
| Delimiter | Simbolo | Karaniwang Gamit |
|---|---|---|
| Comma | , |
Standard sa US at maraming English-language na system |
| Semicolon | ; |
Ginagamit sa European locales (hal. France, Germany) |
| Tab | \t (invisible) |
Ginagamit para sa TSV (Tab‑Separated Values) |
Bakit mahalaga ang pagpili ng delimiter? Sa ilang locale, ang comma ay ginagamit bilang decimal separator (halimbawa, sa Spain ang 1,5 ay 1.5). Kung magda-download ka ng CSV gamit ang comma delimiter sa ganitong locale, i-interpret ng spreadsheet software ang 1,5 bilang dalawang magkaibang column sa halip na isang numero. Ang paggamit ng semicolon o tab ay umiiwas sa problemang ito.
Kapag pumili ka ng semicolon, ang tool ay gagawa ng CSV file na gumagamit ng semicolon bilang column separator, at awtomatiko itong i-detect ng karamihan ng spreadsheet software.
Pagkawala ng Data Types: Lahat ay Nagiging String
Ang isa sa pinakamalaking pagkakaiba ng JSON at CSV ay ang type system. Ang JSON ay may mga types: string, number, boolean, null, object, at array. Ang CSV ay may isang uri lamang ng value: string (text). Lahat ay nire-represent bilang text.
Ang konkretong epekto nito:
| JSON Type | Halimbawa sa JSON | Sa CSV |
|---|---|---|
| number | 100 |
100 (bilang text) |
| number | 0123 |
123 (nawawala ang leading zero) |
| boolean | true |
true (bilang string) |
| null | null |
walang laman (empty cell) |
| string | "Hello, world" |
"Hello, world" (quoted dahil may comma) |
Ang leading zero ay isa sa mga pinakakaraniwang problema. Kung ang iyong JSON ay nagre-represent ng ZIP code bilang number na 02139, ito ay naka-store bilang number na 2139 sa JSON mismo, kaya ang tool ay maglalabas ng 2139 sa CSV. Upang mapanatili ang leading zeros, ang source JSON ay dapat mag-store ng mga value na ito bilang strings: "02139".
Ang null values ay nagiging empty cells sa CSV. Ito ay maaaring magdulot ng problema kung kailangan mong malaman na ang cell ay deliberately empty kumpara sa hindi na-set.
Mga Error Messages at Limitasyon
Ang tool ay may mga limitasyon sa file size, row count, at column count. Kung lumampas sa mga ito, makikita mo ang kaukulang error. Narito ang kumpletong listahan ng posibleng errors:
- "This file is too large. Use a file under ‹max›." – Ang
‹max›ay ang maximum allowed file size na 8 MB. Ibig sabihin ay masyadong malaki ang iyong file para sa tool. - "Walang mga hilera ng talahanayan ang file na ito." – Ang iyong file ay walang table rows.
- "This table has more than ‹max› rows." – Ang
‹max›ay ang maximum na bilang ng 10,000 rows. Kung ang iyong JSON ay may 2 million objects, posibleng lumampas ito. - "This table has more than ‹max› columns." – Ang
‹max›ay ang maximum na bilang ng 200 columns. Ang nested JSON na may maraming properties ay posibleng lumampas sa limitasyong ito. - "Choose a CSV, JSON or XLSX file." – Ang file na iyong in-upload ay hindi isa sa tatlong tinatanggap na format.
- "Choose a different output format." – Hindi CSV ang napili mong output.
- "Could not convert this file." – Hindi na-process ng tool ang iyong file dahil sa hindi kilalang error.
- "Conversion cancelled." – Ikaw mismo ang nag-cancel ng conversion.
- "This conversion is taking too long. Try a smaller file." – Ang conversion ay nagtatagal nang hindi inaasahan (higit sa 12 segundo). Ito ay maaaring dahil sa sobrang laki ng file o hindi inaasahang format.
FAQ – Mga Madalas Itanong
1. Bakit nawawala ang mga nested object sa aking CSV?
Ang tool ay gumagamit ng dot‑path flattening. Ang nested object na address.city ay nagiging column name. Walang nested structure ang CSV, kaya ang tanging paraan para i-represent ang nesting ay sa pamamagitan ng column naming convention. Kung mayroon kang object sa loob ng object, ang bawat antas ay nagdaragdag ng dot.
2. Ano ang mangyayari kung ang aking JSON ay may arrays of arrays?
Kung ang iyong JSON ay isang array of arrays (halimbawa, ``), ang tool ay gagawa ng isang row para sa bawat inner array. Ang bawat elemento ng inner array ay magiging isang column. Walang column names; ang column numbers (0, 1, 2) ang gagamitin.
3. Pwede ko bang i-import ang resultang CSV sa Excel at mapanatili ang mga numbers?
Ang Excel ay mag-i-interpret ng CSV values, ngunit ang lahat ng number values mula sa JSON ay magiging text sa CSV. Kapag binuksan mo ang CSV sa Excel, ang Excel ay mag-attempt na i-convert ang text pabalik sa numbers kung posible. Ngunit ang leading zeros ay mawawala, at ang boolean values na true at false ay mananatiling text.
4. Bakit may mga column na may dot sa pangalan (hal. address.city)?
Ang dot ay ang separator na ginagamit para i-flatten ang nested JSON objects. Ito ay isang standard na convention sa maraming JSON-to-CSV tools. Ang bawat dot ay kumakatawan sa isang antas ng nesting. Kung mayroon kang address.city, ibig sabihin ang address ay isang object na may property na city.
5. Ligtas ba ang aking data? Na-upload ba ito sa server?
Hindi. Lahat ng processing ay ginagawa sa iyong browser. Walang file ang ina-upload sa anumang server. Ito ay mainam para sa privacy-sensitive na data tulad ng personal information o company data.
6. Ano ang dapat kong gawin kung ang aking JSON ay may 2 million rows?
Ang tool ay may limitasyon sa maximum rows (10,000 rows). Kung lalampas ka sa limitasyong ito, kailangan mong i-split ang iyong JSON file sa mas maliliit na bahagi bago i-convert. Maaari kang gumamit ng command-line tool tulad ng jq para i-filter o i-slice ang iyong data.
Mga Edge Case at Practical na Payo
Ang pag-convert ng JSON patungo sa CSV ay hindi direktang one-to-one mapping. Narito ang ilang practical na bagay na dapat tandaan:
Embedded commas at line breaks – Kung ang iyong JSON values ay may commas o line breaks, awtomatikong i-quote ng tool ang mga ito. Halimbawa, ang string "Juan, Jr." ay magiging "Juan, Jr." sa CSV. Ang line break sa loob ng isang cell ay magiging isang quoted na line break, na pwedeng hindi i-handle nang tama ng ilang CSV parsers.
Encoding – Ang tool ay gumagamit ng UTF-8 encoding bilang default. Kung magbubukas ka ng CSV sa Excel sa Windows, posibleng hindi ito ma-detect nang tama dahil gumagamit ang Excel ng system locale encoding. Sa kasong ito, maaari mong i-save ang file bilang CSV UTF-8 o gumamit ng import wizard sa Excel.
Empty arrays at objects – Kung ang isang JSON property ay isang empty array `` o isang empty object {}, ang tool ay maglalagay ng empty cell sa CSV. Walang paraan para malaman kung ito ay empty array o empty object kapag nasa CSV na.
Mixed types sa array – Kung ang isang JSON array ay naglalaman ng magkakaibang types (hal. [1, "hello", true]), ang tool ay iko-convert ang bawat elemento bilang string. Walang type information ang mapapanatili.
Ang tool na ito ay dinisenyo para sa mga taong may structured, table‑shaped na JSON data at kailangang i-load ito sa spreadsheet software o database import tools. Ang pag-unawa sa mga trade‑offs na ito ay makakatulong sa iyo na maghanda ng iyong data at maiwasan ang mga sorpresa pagkatapos ng conversion.