Mengkonversi Json Array Menjadi Data CSV atau Excel
|Setelah lama tidak posting, akhirnya saya aktif kembali mengelola blog ini misbahulihsan.com guna menuliskan catatan catatan pribadi supaya tidak lupa. Tulisan kali ini cukup sedehana saja, yakni tentang mengkonversi data yang bebentuk Array pada Json dan ingin diubah menajdi bentuk data di CSV atau Excell. Yang nantinya jika sudah berbentuk csv, dapat digunakan untuk kebutuhan lainnya.
Pelu diketahui, untuk laptop yang saya gunakan adalah Macbook dengan opetraing system MacOs Sonoma. Jadi memang tulisan saya ini tidak secara global untuk berbagai macam operating system seperti WIndows maupun Linux. Untuk Linus mungkin bisa karean ada kesamaan dengan MacOs.
Sebelumnya pastikan kita sudah memiliki data berbentuk Json Array, contohnya mungkin bisa dilihat dibawah ini adalah Json array untuk Provinsi diIndonesia. Sumber disini.
[
{
"id": "11",
"name": "ACEH",
"alt_name": "ACEH",
"latitude": 4.36855,
"longitude": 97.0253
},
{
"id": "12",
"name": "SUMATERA UTARA",
"alt_name": "SUMATERA UTARA",
"latitude": 2.19235,
"longitude": 99.38122
},
{
"id": "13",
"name": "SUMATERA BARAT",
"alt_name": "SUMATERA BARAT",
"latitude": -1.34225,
"longitude": 100.0761
},
{
"id": "14",
"name": "RIAU",
"alt_name": "RIAU",
"latitude": 0.50041,
"longitude": 101.54758
},
{
"id": "15",
"name": "JAMBI",
"alt_name": "JAMBI",
"latitude": -1.61157,
"longitude": 102.7797
},
{
"id": "16",
"name": "SUMATERA SELATAN",
"alt_name": "SUMATERA SELATAN",
"latitude": -3.12668,
"longitude": 104.09306
},
{
"id": "17",
"name": "BENGKULU",
"alt_name": "BENGKULU",
"latitude": -3.51868,
"longitude": 102.53598
},
{
"id": "18",
"name": "LAMPUNG",
"alt_name": "LAMPUNG",
"latitude": -4.8555,
"longitude": 105.0273
},
{
"id": "19",
"name": "KEPULAUAN BANGKA BELITUNG",
"alt_name": "KEPULAUAN BANGKA BELITUNG",
"latitude": -2.75775,
"longitude": 107.58394
},
{
"id": "21",
"name": "KEPULAUAN RIAU",
"alt_name": "KEPULAUAN RIAU",
"latitude": -0.15478,
"longitude": 104.58037
},
{
"id": "31",
"name": "DKI JAKARTA",
"alt_name": "DKI JAKARTA",
"latitude": 6.1745,
"longitude": 106.8227
},
{
"id": "32",
"name": "JAWA BARAT",
"alt_name": "JAWA BARAT",
"latitude": -6.88917,
"longitude": 107.64047
},
{
"id": "33",
"name": "JAWA TENGAH",
"alt_name": "JAWA TENGAH",
"latitude": -7.30324,
"longitude": 110.00441
},
{
"id": "34",
"name": "DI YOGYAKARTA",
"alt_name": "DI YOGYAKARTA",
"latitude": 7.7956,
"longitude": 110.3695
},
{
"id": "35",
"name": "JAWA TIMUR",
"alt_name": "JAWA TIMUR",
"latitude": -6.96851,
"longitude": 113.98005
},
{
"id": "36",
"name": "BANTEN",
"alt_name": "BANTEN",
"latitude": -6.44538,
"longitude": 106.13756
},
{
"id": "51",
"name": "BALI",
"alt_name": "BALI",
"latitude": -8.23566,
"longitude": 115.12239
},
{
"id": "52",
"name": "NUSA TENGGARA BARAT",
"alt_name": "NUSA TENGGARA BARAT",
"latitude": -8.12179,
"longitude": 117.63696
},
{
"id": "53",
"name": "NUSA TENGGARA TIMUR",
"alt_name": "NUSA TENGGARA TIMUR",
"latitude": -8.56568,
"longitude": 120.69786
},
{
"id": "61",
"name": "KALIMANTAN BARAT",
"alt_name": "KALIMANTAN BARAT",
"latitude": -0.13224,
"longitude": 111.09689
},
{
"id": "62",
"name": "KALIMANTAN TENGAH",
"alt_name": "KALIMANTAN TENGAH",
"latitude": -1.49958,
"longitude": 113.29033
},
{
"id": "63",
"name": "KALIMANTAN SELATAN",
"alt_name": "KALIMANTAN SELATAN",
"latitude": -2.94348,
"longitude": 115.37565
},
{
"id": "64",
"name": "KALIMANTAN TIMUR",
"alt_name": "KALIMANTAN TIMUR",
"latitude": 0.78844,
"longitude": 116.242
},
{
"id": "65",
"name": "KALIMANTAN UTARA",
"alt_name": "KALIMANTAN UTARA",
"latitude": 2.72594,
"longitude": 116.911
},
{
"id": "71",
"name": "SULAWESI UTARA",
"alt_name": "SULAWESI UTARA",
"latitude": 0.65557,
"longitude": 124.09015
},
{
"id": "72",
"name": "SULAWESI TENGAH",
"alt_name": "SULAWESI TENGAH",
"latitude": -1.69378,
"longitude": 120.80886
},
{
"id": "73",
"name": "SULAWESI SELATAN",
"alt_name": "SULAWESI SELATAN",
"latitude": -3.64467,
"longitude": 119.94719
},
{
"id": "74",
"name": "SULAWESI TENGGARA",
"alt_name": "SULAWESI TENGGARA",
"latitude": -3.54912,
"longitude": 121.72796
},
{
"id": "75",
"name": "GORONTALO",
"alt_name": "GORONTALO",
"latitude": 0.71862,
"longitude": 122.45559
},
{
"id": "76",
"name": "SULAWESI BARAT",
"alt_name": "SULAWESI BARAT",
"latitude": -2.49745,
"longitude": 119.3919
},
{
"id": "81",
"name": "MALUKU",
"alt_name": "MALUKU",
"latitude": -3.11884,
"longitude": 129.42078
},
{
"id": "82",
"name": "MALUKU UTARA",
"alt_name": "MALUKU UTARA",
"latitude": 0.63012,
"longitude": 127.97202
},
{
"id": "91",
"name": "PAPUA BARAT",
"alt_name": "PAPUA BARAT",
"latitude": -1.38424,
"longitude": 132.90253
},
{
"id": "94",
"name": "PAPUA",
"alt_name": "PAPUA",
"latitude": -3.98857,
"longitude": 138.34853
}
]
Setelah kita berhasil mendapatkan atau mengakses file json tersebut, pastikan kita menyimpan file tersebut kedalam komputer kita, saya asumsikan dengan nama file provinces.json pada direktory Download misalnya.
Installasi.
Sebelum melakukan konversi, kita butuh sebuah tools aplikasi yang dapat dijalankan di terminal mac yang bernama “jq”. Buka terminal dan lakukan installasi dengan brew.
brew install jq
Setelah menginstal jq, kita dapat langsung menggunakan perintah berikut untuk mengonversi file JSON (provinces.json
) menjadi CSV (output-provinces.csv
) dengan mengetikan perintah berikut.
jq -r ' ["id", "name", "alt_name", "latitude", "longitude"] as $header | $header, (.[] | [.id, .name, .alt_name, .latitude, .longitude]) | @csv' provinces.json > output-provinces.csv
Dan setelah perintah tersebut kita jalankan, kita akan menadapati sebut file abru yang terbentuk dengan nama output-provinces.csv
dengan size dile yang lebih kecil dibandingkan file asli provinces.json
tersebut.
Memang cukup sederhana dan mudah dengan bantuan ‘jq’ dan yang pasti kode tersebut dapat dimodifikasi sesuai dengan bentuk json array yang ada.
Lalu bagaimana jika kebalikannya, kita ingin Mengkonversi Data CSV Menjadi Json Array. Tenang saja saya sudah membuat postingannya setelah postingan ini, tinggal di baca saja langkah langkah mudahnnya,