JSON-ийг Excel болгон хувиргах: Хүснэгтэн өгөгдлийн бүтцийг ойлгох нь
Энэ хуудас нь JSON файлыг Excel-ийн XLSX формат руу хөрвүүлэх функцтэй. Гол онцлог нь: JSON нь төрөлжсөн, үүрлэсэн бүтэцтэй (объект, массив, тоо, логик утга, null) байхад хүснэгт нь тэгш бүтэцтэй тул үүрлэсэн түлхүүрүүдийг цэгийн зам (dot-path) хэлбэрээр тэгшилж, хавтгай хүснэгт үүсгэдэг. Энэ нь CSV эсвэл Excel-ээс ялгаатай — тэдгээр нь аль хэдийн хавтгай өгөгдөл агуулдаг. XLSX формат нь ZIP-д багцлагдсан XML ажлын ном бөгөөд тоо, логик утгыг өөрийн төрлөөр хадгалдаг бол CSV бүх өгөгдлийг текст болгон хувиргадаг. Гэхдээ энэ хэрэгсэл аль ч томьёо, үүрний загварыг дамжуулдаггүй; зөвхөн JSON-ийн статик өгөгдлийг бичдэг.
JSON бүтэц ба хавтгайруулах зарчим
JSON (JavaScript Object Notation) нь объект, массив, тэмдэгт мөр (string), тоо (number), логик утга (boolean), null гэсэн зургаан төрлийн өгөгдлийг дэмждэг. Объект нь түлхүүр-утгын хосоос бүрдэх бөгөөд утгууд нь дахин объект эсвэл массив байж болно. Массив нь дараалсан элементүүдийн жагсаалт юм.
Хүснэгтэн бүтэц рүү хөрвүүлэхэд объектын массив (array of objects) хамгийн тохиромжтой: объект бүр мөр болж, түлхүүр бүр баганын гарчиг болно. Харин үүрлэсэн объект байвал түлхүүрүүдийг цэгээр холбосон нэрээр тэмдэглэнэ. Жишээлбэл:
[
{
"name": "Бат",
"address": {
"city": "Улаанбаатар",
"district": "Сүхбаатар"
}
},
{
"name": "Сараа",
"address": {
"city": "Эрдэнэт",
"district": "Баян-Өндөр"
}
}
]
Энэ JSON нь хоёр мөр, гурван багана бүхий хүснэгт болно: name, address.city, address.district. Цэгийн зам нь бодит хэрэглээнд маш түгээмэл: API-ийн хариу, тохиргооны файл, мэдээллийн сангийн баримтыг Excel-д шинжлэх шаардлага гардаг.
Массивын массивыг (array of arrays) мөр гэж үзнэ. Жишээ нь: [["Нэр", "Нас"], ["Бат", 25], ["Сараа", 30]] эхний мөрөөс гарчиг болгохгүй — бүх мөр шууд өгөгдөл болно. Гэхдээ хэрэв өгөгдөл нь объектын массив биш эсвэл массивын массив биш бол This JSON is invalid or not table‑shaped. алдаа гарна.
Өгөгдлийн төрлийн зураглал: JSON-оос Excel-д
| JSON төрөл | XLSX төрөл | Тайлбар |
|---|---|---|
| string | текст | Шууд тэмдэгт мөр хэлбэрээр хадгалагдана. |
| number | тоо | Бүхэл болон хөвөгч цэгийн тоо (жишээ нь 123, 3.14) тоон үүр болно. |
| boolean | логик | true → TRUE, false → FALSE гэж хадгалагдана. |
| null | хоосон үүр | Null утга нь Excel-д хоосон үүр (empty cell) болно. |
| object / array | текст | Хэрэв объект дотор массив байвал, тухайн массив бүхэлдээ JSON текст хэлбэрээр нэг үүрэнд бичигдэнэ. Жишээлбэл, [{"sku":"A"},{"sku":"B"}] гэсэн текст болно. |
XLSX нь тоон утгыг шууд тоо хэлбэрээр хадгалдаг тул Excel дээр дүн шинжилгээ хийхэд тохиромжтой — жишээ нь нийлбэр, дундаж тооцох боломжтой. Харин CSV-д бүх утга текст болдог тул тоон утгуудыг дахин тоо болгон хөрвүүлэх шаардлагатай.
XLSX формат ба клиент талын боловсруулалтын давуу тал
XLSX нь Microsoft Office Open XML формат дээр суурилсан. Энэ нь ZIP архив дотор XML файлуудыг агуулна: xl/workbook.xml, xl/worksheets/sheet1.xml зэрэг. Хүснэгтийн мөр, багана, үүрний утга, төрөл бүрийг XML дотор зааж өгдөг. Иймээс нэг XLSX файлд олон хуудас, загвар, томьёо багтаж болох ч, энэ хэрэгсэл зөвхөн нэг ажлын хуудсыг үүсгэж, зөвхөн статик өгөгдлийг бичдэг; томьёо, үүрний өнгө, фонт зэрэг хадгалагдахгүй. Үүсгэсэн ажлын хуудасны нэрийг Sheet1 гэж өгнө.
Чухал онцлог нь: хөрвүүлэлт бүхэлдээ хэрэглэгчийн вэб хөтөч дээр явагддаг (client-side process). JSON файлыг сервер рүү илгээхгүй, төхөөрөмжөөс гаргахгүй. Иймээс өгөгдлийн нууцлал хадгалагдана. Энэ нь мэдрэмтгий API түлхүүр, хувийн мэдээлэл агуулсан JSON файлуудыг боловсруулахад аюулгүй юм.
Ашиглах дүрэм ба алдааны мэдэгдлүүд
Хэрэгсэл нь зөвхөн нэг файлыг нэг удаа боловсруулдаг. Оролтын JSON файл нь дараах шаардлагыг хангасан байх ёстой:
- Файлын хэмжээ 8 MB-аас бага байх ёстой. Үүнээс том файлуудыг This file is too large. Use a file under ‹max›. алдаагаар татгалзана.
- JSON хэлбэр зөв (синтакс алдаагүй).
- "table‑shaped": объектын массив эсвэл массивын массив.
- Хүснэгтэд дор хаяж нэг мөр байх ёстой. Хэрэв массив хоосон бол This file has no table rows. гарна.
- Мөр, баганын тоо нь хэрэгслийн дээд хязгаараас хэтрэхгүй. 10,000 мөрөөс ихгүй, 200 баганаас ихгүй байх ёстой. Хэтэрвэл This table has more than ‹max› rows. эсвэл This table has more than ‹max› columns. мэдэгдэл гарна.
- Хөрвүүлэлт 12 секундээс удаан үргэлжилбэл This conversion is taking too long. Try a smaller file. гарна.
Алдаа гарвал хэрэглэгч Conversion cancelled. гэх мэт мэдэгдэл хүлээн авч болно.
Хуудас нь хөрвүүлсэн хүснэгтийн эхний 8 мөр, 8 баганын урьдчилан харах (preview), мөр, баганын тоо, гаралтын файлын хэмжээг харуулдаг.
Хэн энэ хэрэгсэл ашиглах вэ?
- API-ийн өгөгдөлтэй ажилладаг хөгжүүлэгчид: API-ийн хариу ихэвчлэн JSON хэлбэртэй байдаг. Анализ хийх, тайлан гаргахын тулд Excel-д оруулах шаардлага гардаг. Энэ хэрэгсэлээр кодын мөр бичихгүйгээр хөрвүүлж болно.
- Өгөгдлийн аналитикчид: Үүрлэсэн JSON-г хавтгайруулж, Power BI эсвэл Excel-д шинжлэхэд бэлэн болгох.
- Тоо, логик утгыг хадгалах шаардлагатай хэн бүхэн: XLSX нь тоо болон логик утгыг зөв хадгалдаг тул CSV-ээс илүү.
- Төслийн багууд: Нэг хэсэг нь JSON файлтай ажилладаг, нөгөө хэсэг нь Excel ашигладаг. Энэ хэрэгсэл тэдгээрийн хооронд гүүр болно.
Хязгаарлалт ба ирмэг тохиолдлууд
- Зөвхөн нэг ажлын хуудас: Хэрэгсэл зөвхөн эхний хуудсыг үүсгэдэг. Олон хуудас, нэгдсэн үүр, томьёо дамжуулагдахгүй.
- Алдаатай JSON: Хэрэв JSON синтакс буруу, эсвэл объектын массив биш (жишээ нь ганц объект эсвэл үндсэн төрөл) бол This JSON is invalid or not table‑shaped. гарна.
- Хоосон массив: `` гэх мэт хоосон массив нь мөргүй хүснэгт үүсгэдэг тул This file has no table rows. гарна.
- Null утга: Null нь хоосон үүр болдог. Excel-д хоосон үүр нь 0-ээс ялгаатай: тооцоололд үл тоомсорлогддог.
- Тоо болон логик утга маш сайн хадгалагддаг: Жишээ нь JSON-д
trueбайгаа бол XLSX-дTRUEболно; тооцоололд1гэж тайлбарлагдана. - Файлын хэмжээ хязгаар: Хэрэв файл хэт том бол хөрвүүлэлт удааширч, цуцлагдах магадлалтай. Хэрэгсэл анхааруулга харуулна.
- Оролтын файлыг сонгохдоо: Choose a CSV, JSON or XLSX file. алдаа гарч болно.
Түгээмэл асуултууд (FAQ)
1. Яагаад миний JSON хүснэгтэн хэлбэрт орохгүй байна вэ?
Хэрэв таны JSON нь объектын массив биш (жишээ нь ганц объект {"name":"Бат"}) эсвэл массивын массив биш бол хэрэгсэл ажиллахгүй. Мөн JSON-ийн синтакс зөв эсэхийг шалгаарай (жишээ нь хаалт, таслал).
2. Үүрлэсэн объектын түлхүүрийг хэрхэн нэрлэдэг вэ?
Цэгийн зам хэрэглэдэг. Жишээ нь address объект дотор city байвал address.city гэсэн багана гарна. Хэрэв гурван түвшний үүрлэсэн бол a.b.c болно.
3. Массив дотор массив байвал яах вэ?
Хэрэв таны JSON нь массивын массив (жишээ нь ``) бол шууд хүснэгт болно. Харин объектын дотор массив байвал (жишээ нь {"name":"Бат", "scores":}) массивыг JSON текст хэлбэрээр нэг үүрэнд бичнэ.
4. Null утгуудыг хэрхэн харьцдаг вэ?
Null утга нь Excel-д хоосон үүр болно. Тоон баганад хоосон үүр тооцоонд оролцохгүй.
5. Файлын хэмжээ хязгаар ямар вэ?
Файлын хэмжээ 8 MB байна. Хэрэв таны файл хэт том бол This file is too large. Use a file under ‹max›. анхааруулга гарна.
6. Хөрвүүлэлт яагаад удаан байна вэ?
Хэрэгсэл клиент талд ажилладаг. Том файлууд дээр хавтгайруулах, үүр үүсгэх үйлдэл CPU-г ачаална. Хэрэв This conversion is taking too long. Try a smaller file. гэж гарвал жижиг файл ашиглахыг зөвлөж байна.
Энэ хэрэгсэл нь JSON-ийн уян хатан бүтцийг Excel-ийн тэгш хүснэгтэд хөрвүүлэх энгийн боловч хүчирхэг арга юм. Өгөгдлийн төрлийг хадгалах, нууцлалыг хамгаалах давуу талтай боловч зөвхөн хавтгай хүснэгтэн бүтэцтэй ажилладаг гэдгийг санаарай. Хэрэв таны JSON маш их үүрлэсэн эсвэл өөр төрлийн бүтэцтэй бол эхлээд өгөгдлийг зохих хэлбэрт оруулах шаардлагатай.