JSON naar CSV
Of plak ondertiteltekst
Wat deze conversie verandert
3 dingen vervallen of vragen om een beslissing
- Opmaak
alle opmaak (vet, cursief, kleur, contour, schaduw)
- Positionering
positionering op het scherm (elk blok keert terug naar de standaardpositie)
- Karaoke
karaoke-timing (markering per lettergreep)
Deze lijst komt uit de capaciteitenmatrix voor deze twee formaten, niet uit het bestand dat je hebt geladen. Een specifiek bestand kan meer verliezen wanneer het kenmerken gebruikt die het formaat toestaat maar de matrix niet modelleert.
Deze pagina zet JSON om naar CSV. Je sleept een bestand naar het vak of plakt de tekst erin, en je krijgt de CSV-versie terug. Alles gebeurt in je browser: niets wordt geüpload en een account is niet nodig.
De twee formaten bewaren niet hetzelfde. Stijl, positie en karaoke hebben in CSV geen plek: een spreadsheetkolom bevat tekst, geen opmaak en geen coördinaten. De lijst hierboven komt uit wat beide formaten elk kunnen uitdrukken, niet uit jouw bestand, dus je ziet hetzelfde antwoord vóór je iets laadt.
De uitvoer is een tabel met de kolommen start, end en text. Tekst over meerdere regels staat tussen dubbele aanhalingstekens, zodat de rij één blijft. Eén bestand kan, een heel seizoen ook: de wachtrij werkt ze in volgorde af en levert één ZIP op.
Voorbeelden
Een typisch JSON-bestand, omgezet naar CSV
Invoer
{
"version": 1,
"title": "Fixture: typical",
"fps": 25,
"styles": {
"Default": {
"name": "Default",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#FFFFFF",
"bold": false,
"italic": false
}
},
"generator": "subtitlematrix fixtures",
"cues": [
{
"id": "1",
"start": 0,
"end": 2000,
"lines": [
"Hello world.",
"Second line."
],
"style": "Default",
"position": {
"x": 100,
"y": 200,
"align": "center"
}
},
{
"id": "2",
"start": 2500,
"end": 4000,
"lines": [
"Plain line.",
{
"text": "Styled line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
]
},
{
"id": "3",
"start": 4500,
"end": 6000,
"lines": [
"Roger: I am here."
],
"speaker": "Roger"
}
]
}
Uitvoer
start,end,text
00:00:00.000,00:00:02.000,"Hello world.
Second line."
00:00:02.500,00:00:04.000,"Plain line.
<i>Styled</i> line."
00:00:04.500,00:00:06.000,Roger: I am here.
In deze uitvoer gaan stijl, positie en karaoke verloren. Al het andere komt regel voor regel overeen.
Dezelfde conversie op een rommelige invoer
Invoer
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Uitvoer
start,end,text
00:00:00.000,00:00:01.000,First.
00:00:01.000,00:00:02.000,Second.
00:00:02.000,00:00:03.000,Third.
Zo zien echte bestanden er vaak uit: gemengde regeleinden, losse spaties, lege velden. Vergelijk het met het nette voorbeeld hierboven om te zien wat de parser vergeeft.
Veelgestelde vragen
Blijven vet en cursief van JSON naar CSV bewaard?
Nadruk wel, de stijltabel niet. Opmaak die bij een stuk tekst hoort — vet, cursief, onderstreept, een kleur — komt als tag in de CSV-tekst terecht (<i>, <b>, <u>, <font color="…">), want dat is het enige soort stijl dat een formaat op blokniveau nog kan dragen. Wat verdwijnt, is alles wat het JSON-bestand globaal zei: het lettertype, de grootte, de rand, de schaduw en de marges.
Wat gebeurt er met de positie op het scherm van JSON naar CSV?
CSV kan niet zeggen waar een ondertitel wordt getekend. De positie die bij elk blok is opgeslagen, valt daarom weg bij het verlaten van JSON, en elk blok keert terug naar de standaardpositie die de speler kiest: voor de meeste spelers onderaan in het beeld, gecentreerd.
Wat gebeurt er met karaoketiming van JSON naar CSV?
De timing verdwijnt, de woorden blijven. Karaoke zit in de karaokespans die een JSON-blok meedraagt en die markeren wanneer elke lettergreep oplicht. CSV kan geen moment binnen een regel vastleggen, dus de markeringen gaan eraf en de lettergrepen komen als gewone CSV-tekst binnen.
Hoe ziet de uitvoer eruit als JSON CSV wordt?
Als CSV: een kopregel (start,end,text) en daarna één rij per blok. Elk JSON-blok wordt één CSV-rij, in dezelfde volgorde en met dezelfde tekst.
Zijn de JSON-tijden exact in het CSV-bestand?
Ja, tot op de milliseconde, en fijner gaat geen van beide formaten. JSON schrijft een moment als 4126, CSV schrijft hetzelfde moment als 00:00:04.126; er wordt niets afgerond of verschoven, en een blok dat 2,9 seconden in beeld stond, staat dat nog steeds.
Hoe komt een JSON-blok van twee regels in CSV terecht?
Als twee regels binnen de ene tekstcel, tussen aanhalingstekens zoals CSV dat eist. Het verband blijft: de twee JSON-regels horen in de CSV-uitvoer nog steeds bij één ondertitel, en een speler toont ze samen.
Blijft de volgorde van JSON-blokken in de CSV-uitvoer behouden?
Ja, en ze worden onderweg op starttijd gesorteerd: vroegste eerst. Stond jouw JSON-bestand niet in volgorde, dan zet de CSV-uitvoer de rijen weer netjes achter elkaar. Dat verandert de structuur van het bestand, niet de inhoud, en het is bewust.
Kan ik de CSV terug naar JSON omzetten?
Ja, en die richting kost niets: een CSV-bestand bevat minder dan JSON kan, dus er gaat onderweg niets extra verloren. Wat deze richting verloor, blijft wel verloren — stijl, positie en karaoke kun je niet uit een CSV-bestand opbouwen, omdat er niets in staat dat vastlegt hoe ze waren.
Blijft de tekencodering van het JSON-bestand behouden in de CSV-uitvoer?
Nee. De uitvoer is UTF-8 met Unix-regeleinden en zonder BOM, wat het JSON-bestand ook gebruikte. Een bestand in UTF-16 of in een Windows-codering met één byte wordt bij het inlezen gedecodeerd (het resultaatpaneel zegt het als dat gebeurt); wat eruit komt is altijd dezelfde UTF-8-CSV.