Hopp til hovedinnhold
SubtitleMatrix

JSON til CSV

Eller lim inn underteksttekst

Hva denne konverteringen endrer

3 ting slippes eller trenger en avgjørelse

  • Formatering

    all formatering (fet, kursiv, farge, kontur, skygge)

  • Plassering

    plassering på skjermen (hver tekstblokk går tilbake til standardposisjonen)

  • Karaoke

    karaoketiming (utheving per stavelse)

Denne listen kommer fra egenskapsmatrisen for disse to formatene, ikke fra den bestemte filen du lastet inn. En bestemt fil kan miste mer hvis den bruker egenskaper formatet tillater, men matrisen ikke modellerer.

Denne siden konverterer JSON til CSV: slipp inn en fil eller lim inn teksten, og du får CSV-versjonen tilbake med tekstblokkene fra JSON i behold.

Forskjellen mellom JSON og CSV er ikke kosmetisk: stiltabellen og den navngitte stilen forsvinner — skrift, størrelse, farge, omriss og skygge — mens innebygde tagger for fet og kursiv blir med som tekst; plasseringen forsvinner, og hver tekstblokk faller tilbake til standardplassen; karaoketimingen per stavelse forsvinner.

Listen over filboksen er regnet ut fra hva JSON og CSV kan uttrykke, ikke fra filen din, så svaret er det samme før du laster opp noe.

Du kan kjøre én JSON-fil eller en hel sesong til CSV i samme kjøring: filene behandles én om gangen, kjøringen kan avbrytes underveis, og alt kommer ned som én ZIP.

Konverteringen fra JSON til CSV skjer i nettleseren din, så ingenting lastes opp.

Eksempler

En typisk JSON-fil konvertert til CSV

Inndata

{
  "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"
    }
  ]
}

Resultat

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.

Dette går tapt i utdataen: formatering, plassering og karaoke.

Samme JSON-til-CSV-konvertering med vanskelig inndata

Inndata

[
    { "start": 0, "end": 1000, "lines": ["First."] },
    { "start": 1000, "end": 2000, "text": "Second." },
    "not an object",
    { "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]

Resultat

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.

Slik ser skader på ekte filer ut — blandede linjeskift, løse mellomrom, tomme felt. Sammenlign med det ryddelige eksempelet over for å se hva JSON-parseren tilgir.

Ofte stilte spørsmål

Hva går tapt når JSON blir CSV?

Dette: stiltabellen og den navngitte stilen forsvinner — skrift, størrelse, farge, omriss og skygge — mens innebygde tagger for fet og kursiv blir med som tekst; plasseringen forsvinner, og hver tekstblokk faller tilbake til standardplassen; karaoketimingen per stavelse forsvinner. På kildesiden har JSON et JSON-skjema med tider i millisekunder og tagger per linje; på målsiden har CSV rader med start, slutt og tekst i millisekunder, og derfor kommer de nevnte tingene ikke med. Teksten og rekkefølgen kommer over.

Hvordan skrives tidsstemplene om fra JSON til CSV?

En tid i JSON ser slik ut: `"start": 4126` — heltall millisekunder. I CSV skrives den som `00:00:01.000` i en `start`- eller `end`-kolonne. Begge formatene bruker samme oppløsning, så ingen avrunding skjer. Rekkefølgen er den samme, og ingen tekstblokk flyttes mer enn avrundingen tilsier.

Hva skjer med formateringen fra JSON i CSV?

Stiltabellen i JSON forsvinner — skrift, størrelse, marger, omriss og navngitte stiler — men de innebygde taggene for fet, kursiv og farge blir stående som vanlige tegn i teksten i CSV og overlever dermed. Det er stilen som er tapt, ikke all formatering.

Hvordan ser en CSV-fil ut når den er laget fra JSON?

CSV er en `start,end,text`-overskrift og én rad per tekstblokk, med anførselstegn rundt tekst som inneholder komma eller linjeskift. Konverteringen fra JSON fyller den formen: hver tekstblokk blir én CSV-blokk, i samme rekkefølge, med JSON-ens tekst delt i de samme linjene.

Kan jeg konvertere CSV tilbake til JSON, og hva går tapt da?

Ja, og den veien er også tapsfri: CSV og JSON uttrykker de samme tingene, så en runde tilbake gir de samme tekstblokkene og tidsstemplene.

Beholder CSV plasseringen som JSON beskriver?

Nei. JSON kan plassere en tekstblokk på skjermen, men CSV har ingen posisjonsmodell, så hver tekstblokk faller tilbake til spillerens standardplass; posisjonen står i tap-listen.

Hva gjør CSV med en tekstblokk fra JSON som har flere linjer?

Den beholder linjene. JSON og CSV uttrykker begge flere linjer per tekstblokk, og konverteringen skriver linjeskiftet inne i det anførselstegnede tekstfeltet i stedet for å slå sammen teksten.

Forsvinner karaoketimingen i JSON når jeg konverterer til CSV?

Ja. JSON kan lagre per stavelse når en linje skal lyse opp, men CSV har ingen slik instruksjon; ordene blir stående, men timingen per stavelse er borte.

Hva skjer med kommentarer og metadata i JSON når filen blir CSV?

JSON har `version`, `title`, `fps` og `styles` på dokumentnivå, men de er en del av modellen, ikke private blokker. CSV har overskriftsraden — men det er CSV-konstruksjoner som ikke fantes i JSON, ikke noe som ble borte.

Relaterte verktøy