Siirry pääsisältöön
SubtitleMatrix

Muunna JSON muotoon CSV

Tai liitä tekstityksen teksti

Mitä tämä muunnos muuttaa

3 asiaa pudotetaan tai vaativat päätöksen

  • Tyyli

    kaikki tyylit (lihavointi, kursiivi, väri, ääriviiva, varjo)

  • Sijoittelu

    sijoittelu ruudulla (jokainen alaotsikko palaa oletussijaintiin)

  • Karaoke

    karaokeajoitus (tavukohtainen korostus)

Tämä luettelo tulee näiden kahden muodon kyvykkyysmatriisista, ei lataamastasi tiedostosta. Tietty tiedosto voi menettää enemmän, jos se käyttää ominaisuuksia, jotka muoto sallii mutta matriisi ei mallinna.

Kun JSON muunnetaan CSV:ksi, jokainen JSON-tiedoston alaotsikko kirjoitetaan uudelleen muotoon, jossa yksi alaotsikko on taulukon rivi, jossa on start-, end- ja text-sarakkeet. Aikakoodi vaihtaa muotoa: JSON kirjoittaa sen muodossa {"start": 1000, "end": 3500}, CSV puolestaan muodossa 00:00:01.000,00:00:03.500. Sanoja ei muuteta, vaan JSON-tiedoston teksti siirretään CSV:hen sellaisenaan.

Kun JSON muunnetaan CSV:ksi, menetettävää on dokumenttitason tyylit: fontit, koot, värit, ääriviivat ja varjot, sijoittelu ruudulla ja karaoken ajoitus. Kun JSON muunnetaan CSV:ksi, dokumenttitason tyylit – fontit, koot, värit, ääriviivat, varjot ja marginaalit – eivät mahdu CSV:hen. Raportti näkyy JSON → CSV -ruudun yläpuolella ennen muunnosta, ja jokainen kohta lasketaan tiedostokohtaisesti. Rivinsisäiset tagit säilyvät: JSON tallentaa ne muodossa merkkirajoina tallennetut tagit, ja CSV kirjoittaa ne muodossa <i>, <b> ja <font color> -tagit.

Eräajossa JSON-tiedostot jonottuvat ja valmistuvat yksi kerrallaan; keskeytys toimii kesken CSV-muunnoksen ja tulokset pakataan yhdeksi ZIP-tiedostoksi. Mitään ei lähetetä palvelimelle: koko JSON-muunnos CSV:ksi tapahtuu omalla koneellasi.

Esimerkit

Miltä tavallinen JSON-tiedosto näyttää CSV:ssä

Syöte

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

Tuotos

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.

Tästä JSON → CSV -tulosteesta puuttuvat dokumenttitason tyylit, sijoittelu ja karaoke. Kaikki muu vastaa rivi riviltä.

Sama JSON → CSV -muunnos rikkinäisellä lähdetiedostolla

Syöte

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

Tuotos

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.

Näin rikkinäinen JSON-tiedosto saapuu CSV-muunnokseen: BOM-merkintä, Windows-rivinvaihdot ja lukukelvottomat aikakoodit eivät kaada jäsennintä. Vertaa sitä yllä olevaan siistiin esimerkkiin ja katso, mitä CSV saa mukaansa.

Usein kysytyt kysymykset

Mitä aikaleimoille tapahtuu, kun JSON muunnetaan CSV:ksi?

JSON kirjoittaa ajan muodossa {"start": 1000, "end": 3500}: kokonaislukuina millisekunteina. CSV käyttää muotoa 00:00:01.000,00:00:03.500, eli start- ja end-sarakkeina pisteellisellä millisekuntimuodolla. Tarkkuus on molemmilla puolilla sama, joten aika itse ei muutu – vain sen kirjoitusasu vaihtuu.

Mitkä ominaisuudet eivät mahdu CSV:hen, kun lähde on JSON?

Kun JSON muunnetaan CSV:ksi, menetettävää on dokumenttitason tyylit: fontit, koot, värit, ääriviivat ja varjot, sijoittelu ruudulla ja karaoken ajoitus. Kun JSON muunnetaan CSV:ksi, dokumenttitason tyylit – fontit, koot, värit, ääriviivat, varjot ja marginaalit – eivät mahdu CSV:hen. Kun JSON muunnetaan CSV:ksi, jokainen alaotsikko palaa CSV:ssä oletussijaintiin ruudulla. Alaotsikoiden teksti ja keskinäinen järjestys säilyvät.

Entä lihavointi, kursivointi ja väri – säilyvätkö ne JSONista CSV:hen?

JSON merkitsee rivinsisäisen muotoilun muodossa merkkirajoina tallennetut tagit, ja CSV kirjoittaa sen muodossa <i>, <b> ja <font color> -tagit. JSON-tiedoston dokumenttitason tyylit – fontit, värit ja ääriviivat – eivät kuitenkaan siirry, koska CSV ei tunne tyylitauluja. CSV ei tallenna tyylitauluja lainkaan, joten vain tekstin sisäiset tagit kulkevat mukana.

Mitä rivinvaihdoille tapahtuu, kun JSON muunnetaan CSV:ksi?

Monirivisen alaotsikon rivit erotetaan JSONissa lines-taulukon erillisinä alkioina, ja CSV merkitsee ne lainatun kentän sisäisellä rivinvaihdolla.

Mitä JSON-tiedoston karaoken ajoitukselle tapahtuu CSV:ssä?

JSON tallentaa karaoken tagirakenteeseen: jokainen tavu on oma merkkiraja, jolla on kind: karaoke ja kestonsa. CSV ei tunne karaokea, joten tavut säilyvät tekstinä ja ne merkitään <c>-tageilla, mutta niiden kestot katoavat ja koko alaotsikko näytetään kerralla.

Voiko CSV-tiedoston muuntaa takaisin JSONiksi?

Kyllä. Paluusuunta on yhtä puhdas: jokainen CSV-tiedoston tallentama asia mahtuu JSONiin sellaisenaan. Edestakainen matka JSONista CSV:hen ja takaisin ei kuitenkaan palauta mitään, mitä ensimmäinen muunnos olisi jo pudottanut.

Voinko muuntaa koko kauden JSONista CSV:hen yhdellä ajolla?

Kyllä. Jono käsittelee JSON-tiedostot yksi kerrallaan, ajon voi keskeyttää milloin tahansa ja tulokset tulevat yhtenä ZIP-tiedostona. Jokainen CSV-tiedosto kirjoitetaan selaimessa, joten mitään ei lähetetä palvelimelle; yksittäinen tekstitystiedosto saa olla enintään 64 Mt.

Aiheeseen liittyvät työkalut