Siirry pääsisältöön
SubtitleMatrix

Muunna CSV muotoon JSON

Tai liitä tekstityksen teksti

Mitä tämä muunnos muuttaa

Tässä suunnassa ei menetetä mitään — jokaisella lähdemuodon ominaisuudella on paikka kohdemuodossa.

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.

Tällä sivulla CSV muuttuu JSONiksi: CSV merkitsee alaotsikon muotoon taulukon rivi, jossa on start-, end- ja text-sarakkeet, ja JSON odottaa muotoa cues-taulukon alkio, jossa on start-, end- ja lines-kentät. Aikakoodi vaihtaa muotoa: CSV kirjoittaa sen muodossa 00:00:01.000,00:00:03.500, JSON puolestaan muodossa {"start": 1000, "end": 3500}. Alaotsikoiden teksti kulkee CSV:stä JSONiin sellaisenaan, koska muunnos ei koske sanoja.

Menetyksiä ei ole: CSV ja JSON tallentavat samat asiat – teksti, alku- ja loppuaika ja rivinvaihdot – joten CSV-muunnos JSONiksi on suora. Jokainen CSV-tiedosto saa JSON-version, josta mikään ei jää pois.

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

Esimerkit

Tyypillinen CSV-tiedosto muunnettuna JSONiksi

Syöte

start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."

Tuotos

{
  "version": 1,
  "cues": [
    {
      "start": 1000,
      "end": 3500,
      "lines": [
        "The quick brown fox."
      ]
    },
    {
      "start": 4000,
      "end": 6250,
      "lines": [
        "Jumps over, the lazy dog."
      ]
    },
    {
      "start": 7000,
      "end": 9000,
      "lines": [
        "Two lines here.",
        "And a second one."
      ]
    }
  ]
}

Tässä CSV → JSON -muunnoksessa ei menetetä mitään: vertaa kahta puolta rivi riviltä.

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

Syöte

id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.

Tuotos

{
  "version": 1,
  "cues": [
    {
      "id": "1",
      "start": 1000,
      "end": 4000,
      "lines": [
        "Hello there, friend."
      ]
    },
    {
      "id": "2",
      "start": 5000,
      "end": 7000,
      "lines": [
        "Second line."
      ]
    },
    {
      "id": "4",
      "start": 10000,
      "end": 10001,
      "lines": [
        "End before start."
      ]
    },
    {
      "id": "5",
      "start": 12000,
      "end": 14000,
      "lines": [
        "Unquoted comma in text, right here."
      ]
    }
  ]
}

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

Usein kysytyt kysymykset

Miten CSV ja JSON kirjoittavat aikakoodin?

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

Säilyykö CSV-tiedoston sisältö kokonaan JSONissa?

Tässä suunnassa ei menetetä mitään: jokainen CSV-tiedoston tallentama asia mahtuu JSONiin sellaisenaan, eli teksti, alku- ja loppuaika ja rivinvaihdot. Myöskään JSON-tiedoston luku ei kadota mitään, ellet tuo rikkinäistä tiedostoa, jonka jäsennin joutuu korjaamaan.

Miten rivinsisäiset tagit käyttäytyvät, kun CSV muunnetaan JSONiksi?

CSV merkitsee rivinsisäisen muotoilun muodossa <i>, <b> ja <font color> -tagit, ja JSON kirjoittaa sen muodossa merkkirajoina tallennetut tagit.

Miten CSV-tiedoston moniriviset alaotsikot käyttäytyvät JSONissa?

Monirivisen alaotsikon rivit erotetaan CSV:ssä lainatun kentän sisäisellä rivinvaihdolla, ja JSON merkitsee ne lines-taulukon erillisinä alkioina. JSON:ssa rivit ovat lines-taulukon alkioita, joten rakenne säilyy täsmälleen.

Mitä kaikkea JSON tallentaa CSV:stä, mitä CSV itse ei kerro?

JSON:ssa on dokumenttitason kentät version, title, fps ja styles sekä jokaisella alaotsikolla start-, end- ja lines-kentät. CSV tallentaa vain osan tästä, joten JSON-tiedostoon voi ilmestyä tietoja, joita lähdetiedostossa ei ollut näkyvissä.

Toimiiko paluumuunnos JSONista CSV:hen samalla tavalla?

Kyllä, mutta paluusuunnassa 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. Edestakainen matka CSV:stä JSONiin ja takaisin ei palauta sitä, mitä ensimmäinen muunnos pudotti.

Lähetetäänkö CSV-tiedostoni palvelimelle, kun teen JSON-muunnosta?

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

Aiheeseen liittyvät työkalut