Lompat ke konten
Aback Tools Logo

Pengonversi Format File

Konversikan antara 8 format file berbasis teks umum secara instan. CSV↔TSV, JSON↔XML, Markdown↔HTML, YAML↔JSON, dan INI↔JSON - semuanya dua arah, semuanya ada di browser Anda. Unggah file atau tempel teks, deteksi format secara otomatis, dan unduh hasilnya.

File Format Converter
From
To
Input (CSV)
Output (TSV)

Supported Conversions

CSV ↔ TSV

Comma-separated ↔ Tab-separated

JSON ↔ XML

Structured data interchange

Markdown ↔ HTML

Text markup to web markup

YAML ↔ JSON

Human-readable config data

INI ↔ JSON

Windows config to structured data

$1

$1

(.*?) /gi, '$1 ') // Aturan horizontal .replace(/ /gi, '--- ') // Hapus tag yang tersisa .replace(/ ]+>/g, '') // Bersihkan spasi ekstra .replace(/ /g, ' ') .trim(); kembalikan md; } function yamlToJson(input: string): string { coba tangkap } function simpleYamlParse(yaml: string): Record { hasil const: Record = ; garis const = yaml.split(' '); for (konstan baris garis) { const dipangkas = baris.trim(); if (!trimmed || trimmed.startsWith('#')) lanjutkan; const colonIdx = dipangkas.indexOf(':'); if (colonIdx > 0) } mengembalikan hasil; } fungsi jsonToYaml(masukan: string): string { coba { const obj = JSON.parse(masukan); fungsi toYaml(data: tidak diketahui, indent = ''): string { if (data === null) mengembalikan 'null'; if (typeof data === 'string') { if (data.includes(':') || data.includes('#') || data.includes(' ')) return `"$ " `; kembalikan `$ `; } if (tipe data === 'angka' || tipe data === 'boolean') mengembalikan `$ `; if (Array.isArray(data)) { return data.map(item => `$ - $ `).join(' ') + ' '; } if (typeof data === 'objek') { let yml = ''; for (const [kunci, val] dari Objek.entri(data sebagai Catatan )) { if (typeof val === 'objek' && val !== null && !Array.isArray(val)) { yml += `$ $ : $ `; } else if (Array.isArray(val)) { yml += `$ $ : `; for (konstan item val) { yml += `$ - $ `; } yml += ' '; } else { yml += `$ $ : $ `; } } kembalikan yml; } kembali ''; } kembali keYaml(obj).trim(); } catch } fungsi iniToJson(input: string): string { coba { hasil const: Record > = ; biarkan currentSection = 'umum'; for (baris const dari input.split(' ')) { const dipangkas = baris.trim(); if (!trimmed || trimmed.startsWith(';') || trimmed.startsWith('#')) lanjutkan; const sectionMatch = trimmed.match(/^\[(.+)\]$/); if (sectionMatch) { currentSection = sectionMatch[1].trim(); jika (!hasil[Bagian saat ini]) hasil[Bagian saat ini] = ; melanjutkan; } const eqIdx = dipangkas.indexOf('='); if (eqIdx > 0) { const key = trimmed.slice(0, eqIdx).trim(); biarkan nilai: string | nomor | boolean = dipangkas.slice(eqIdx + 1).trim(); if ((nilai.startsWit h('"') && nilai.berakhirDengan('"')) || (nilai.mulaiDengan("'") && nilai.berakhirDengan("'"))) if (nilai === 'benar') nilai = benar; else if (nilai === 'salah') nilai = salah; else if (!isNaN(Nomor(nilai)) && nilai !== '') nilai = Angka(nilai); jika (!hasil[Bagian saat ini]) hasil[Bagian saat ini] = ; hasil[Bagian saat ini] [kunci] = nilai; } } kembalikan JSON.stringify(hasil, null, 2); } catch } fungsi jsonToIni(input: string): string { coba { const obj = JSON.parse(input); biarkan ini = ''; for (const [bagian, kunci] dari Object.entries(obj as Record )) { ini += `[$ ] `; if (typeof kunci === 'objek' && kunci !== null) { for (const [kunci, nilai] dari Object.entries(kunci sebagai Catatan )) { ini += `$ =$ `; } } ini+= ' '; } kembalikan ini.trim(); } catch } /* -- Router Konversi -- */ fungsi convert(dari: Format, ke: Format, masukan: string): string { if (dari === ke) mengembalikan masukan; // CSV ↔ TSV if (dari === 'csv' && ke === 'tsv') return csvToTsv(input); if (dari === 'tsv' && ke === 'csv') kembalikan tsvToCsv(input); // JSON ↔ XML if (dari === 'json' && ke === 'xml') return jsonToXml(input); if (dari === 'xml' && ke === 'json') return xmlToJson(input); // Penurunan harga ↔ HTML if (dari === 'penurunan harga' && hingga === 'html') return markdownToHtml(input); if (dari === 'html' && ke === 'penurunan harga') return htmlToMarkdown(input); // YAML ↔ JSON if (dari === 'yaml' && ke === 'json') return yamlToJson(input); if (dari === 'json' && ke === 'yaml') kembalikan jsonToYaml(input); // INI ↔ JSON if (dari === 'ini' && ke === 'json') return iniToJson(input); if (dari === 'json' && ke === 'ini') return jsonToIni(input); return `Konversi dari $ ke $ belum didukung.`; } /* -- Komponen Utama -- */ fungsi ekspor ToolSection() { const [inputText, setInputText] = useState(''); const [teks keluaran, setOutputteks] = useState(''); const [fromFormat, setFromFormat] = useState('csv'); const [toFormat, setToFormat] = useState('tsv'); const [detectedFormat, setDetectedFormat] = useState (null); const [disalin, setCopied] = useState(false); kontra t [kesalahan, setError] = useState(''); const [showDetails, setShowDetails] = useState(false); const fileInputRef = useRef (null); const handleConvert = useCallback(() => { if (!inputText.trim()) setError(''); coba tangkap (e) { setError(`Kesalahan konversi: $ `); setOutputText(''); } }, [inputText, fromFormat, toFormat]); const handleDetect = useCallback(() => { if (!inputText.trim()) const terdeteksi = detectorFormat(inputText); setDetectedFormat(terdeteksi); if (terdeteksi) }, [inputText]); const handleSwap = useCallback(() => , [fromFormat, toFormat, inputText, outputText]); const handleCopy = useCallback(() => { navigator.clipboard.writeText(outputText).then(() => ); }, [outputText]); const handleDownload = useCallback(() => { const format = ALL_FORMATS[toFormat]; const blob = new Blob([outputText], ); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `converted$ `; a.click(); URL.revokeObjectURL(url); }, [outputText, toFormat]); const handleFileUpload = useCallback((e: React.ChangeEvent ) => { const file = e.target.files?.[0]; if (!file) kembali; const reader = new FileReader(); reader.onload = (ev) => { const text = ev.target?.result sebagai string; setInputText(teks); const terdeteksi = detectorFormat(teks); setDetectedFormat(terdeteksi); if (terdeteksi) }; reader.readAsText(file }, []); const handleReset = useCallback(() => , []); const fromConfig = ALL_FORMATS[dariFormat]; const toConfig = ALL_FORMATS[toFormat]; const FromIcon = dariConfig.icon; const ToIcon = toConfig.icon; return ( Pengonversi Format File Dari {Object.entries(ALL_FORMATS).map(([value, f]) => ( ))} Ke {Object.entries(ALL_FORMATS).map(([value, f]) => ( ))} Deteksi Format {detectedFormat && ( Terdeteksi: )} {CONVERSION_PAIRS.slice(0, 5).map((pair) => ( } className= > ))} Masukan ( ) Unggah Keluaran ( ) {outputText && ( Unduh )} Konversikan menjadi Hapus {error && ( )} Konversi yang Didukung {[ , , , , , ].map((item) => (

Deteksi Format: Alat ini menganalisis teks masukan Anda untuk menebak formatnya. Ia memeriksa kurung kurawal JSON, tag XML, pasangan nilai kunci YAML, bagian INI, koma CSV, tab TSV, dan pola judul/daftar penurunan harga.

CSV/TSV: Pertukaran pembatas sederhana. CSV menggunakan koma, TSV menggunakan tab. Baris dipertahankan.

JSON/XML: JSON diurai menjadi objek dan diserialkan sebagai XML dengan atribut yang diketik. XML diurai dengan parser berbasis regex sederhana yang menangani struktur dasar bersarang.

Penurunan harga/HTML: Header penurunan harga, huruf tebal, miring, tautan, blok kode, dan daftar diubah menjadi elemen HTML. HTML-to-Markdown membalikkan prosesnya.

YAML/JSON: Pasangan nilai kunci YAML (datar) diuraikan ke objek JSON. Objek JSON diserialkan ke format YAML dasar.

INI/JSON: Bagian INI menjadi kunci objek JSON. Pasangan kunci=nilai menjadi properti. JSON diserialkan kembali ke format INI.

Mengapa Menggunakan Pengonversi Format File?

Konversi antara 8 format file berbasis teks secara instan di browser Anda - tanpa unggahan, tanpa server, tanpa pendaftaran.

  • Konversi Dua Arah: Konversi dua arah: CSV↔TSV, JSON↔XML, Markdown↔HTML, YAML↔JSON, dan INI↔JSON. Tukar format dengan satu klik untuk membalikkan konversi.
  • Deteksi Format Cerdas: Tempel teks apa pun dan klik "Deteksi Format" - alat ini secara otomatis mengidentifikasi CSV, TSV, JSON, XML, Markdown, HTML, YAML, atau INI berdasarkan pola konten. Tidak perlu menentukan format sumber secara manual.
  • Dukungan Unggah File: Unggah file secara langsung, bukan menyalin-menempel. Konverter membaca konten file dan mendeteksi format secara otomatis. Berfungsi dengan file .csv, .tsv, .json, .xml, .md, .html, .yaml, .ini, dan .txt.
  • Salin & Unduh Hasil: Salin keluaran yang dikonversi ke papan klip dengan satu klik atau unduh sebagai file dalam format target. Setiap format menggunakan tipe MIME dan ekstensi file yang benar untuk integrasi yang lancar.

Skenario Konversi Umum

Menjembatani kesenjangan format antara alat, bahasa, dan platform dengan konversi instan.

  • Migrasi Data Pengembang: Ubah respons JSON API menjadi XML untuk integrasi sistem lama, atau ubah konfigurasi XML menjadi JSON untuk aplikasi JavaScript modern. CSV-ke-JSON cepat untuk visualisasi data frontend.
  • Persiapan Data Spreadsheet: Konversikan ekspor CSV dari Excel/Google Spreadsheet ke alat TSV untuk Unix, atau ubah kembali dump database TSV ke CSV untuk impor spreadsheet. Mempertahankan semua baris dan kolom.
  • Pemformatan Dokumen: Konversikan dokumentasi Markdown ke HTML untuk diterbitkan, atau hapus kembali email HTML untuk membersihkan Markdown untuk kontrol versi. Berfungsi baik untuk file README, dokumen, dan draf blog.
  • Manajemen Konfigurasi: Konversikan konfigurasi YAML (Docker, Kubernetes, CI/CD) ke JSON untuk pemrosesan terprogram, atau ubah file INI (PHP, konfigurasi Windows lama) menjadi JSON terstruktur untuk perkakas modern.
  • Pengikisan & API Web: Konversikan HTML mentah yang diambil dari halaman web ke Markdown untuk pembacaan yang bersih, atau ubah respons API JSON ke YAML untuk file konfigurasi. Tangani data dalam format apa pun yang Anda terima.
  • Pertukaran Data Lintas Platform: Menjembatani kesenjangan format antara berbagai alat dan platform. Konversikan konfigurasi INI ke JSON untuk aplikasi Node.js, atau ubah ekspor data XML ke CSV untuk pemangku kepentingan non-teknis.

Tentang Pengonversi Format File

Konversi antara CSV, TSV, JSON, XML, Markdown, HTML, YAML, dan INI - secara instan dan pribadi.

  • Apa Itu Pengonversi Format File?: Alat berbasis browser untuk mengonversi antara 8 format file berbasis teks yang umum: CSV, TSV, JSON, XML, Markdown, HTML, YAML, dan INI. Kelima pasangan konversi tersebut bersifat dua arah - konversikan ke salah satu arah dengan satu klik.
  • Cara Kerja Konversi: CSV/TSV menggunakan pertukaran pembatas sederhana. JSON/XML mengurai data terstruktur dan membuat serial ke format target. Penurunan harga/HTML mengonversi markup teks menjadi markup web dan sebaliknya. YAML/JSON menangani konfigurasi nilai kunci datar. INI/JSON mengubah bagian konfigurasi gaya Windows menjadi objek terstruktur.
  • 100% Pribadi & Offline: Semua konversi terjadi di browser Anda. Tidak ada data yang dikirim ke server mana pun. Tidak ada unggahan, tidak ada antrian pemrosesan, tidak ada API pihak ketiga. Setelah halaman pertama dimuat, konverter bekerja sepenuhnya offline.
  • Untuk Pengembang & Pengguna Data: Dibuat untuk pengembang perangkat lunak, analis data, penulis teknis, insinyur DevOps, dan siapa saja yang bekerja dengan data teks terstruktur. Deteksi format cerdas menghemat waktu dengan mengidentifikasi format input Anda secara otomatis.