jsonin overhead

koko json menee minulta c koodarilta yli. enkoodataan data johonkin tilaa vievään json-merkkijonoformaattiin ja vastaanottaja dekoodaa sen? sen sijaan että siirrettäisiin data suoraan raakamuodossa. tuohan syö ihan sikana aikaa ja resursseja! esim electronissa kaikki data siirtyy jsonina. turhaa varmaan ihmetellä miksi työpöytäsovellukset nykyään raskaita!!
7205
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

Json on erinomaisuutta. Joku XML on siihen nähden yhtä helvettiä. Eli Json on erinomainen tapa välittää ja tallentaa tietoa, koska se on sellaisenaan luettavissa.

Esimerkiksi JavaScriptin objektiksi muunnos käy helposti

json = '{"nimi":"Kalevi", "ikä":62, "auto":null}';
objekti = JSON.Parse(json);

Sen jälkeen objektiin voi viitata tavalliseen tapaan

nimi = objekti.nimi;
tai
nimi = objekti["nimi"];

JavaScript-objekti muutetaan vastaavasti Json-merkkijonoksi

json = JSON.stringify(objekti);

NoSQL-tietokannoista esimerkiksi MongoDB tallentaa tiedot Jsonin kaltaisessa muodossa, joten sitä on helppo käyttää yhdessä Jsonin kanssa.

Äänestä

Ei se mielestäni paljoa eroa XML, kuten muunkaan kuvauskielen tulkkaamisesta...

Äänestä
  • Onkos Jsoniin skeemaa tehtävissä, että tietää sen olevan validia?

    Äänestä

  • Anonyymi kirjoitti:

    Onkos Jsoniin skeemaa tehtävissä, että tietää sen olevan validia?

    Json itsessään on pelkkä stringi, mutta siihen on olemassa schema-viritelmä validoimista varten.

    https://restfulapi.net/json-schema/

    Äänestä

Meinaako aloittaja "raakamuodolla" esimerkiksi binääristä esitystapaa?

Jossain evästeissä ei voi siirtää kuin merkkijonomuotoista dataa. Voihan sinne tietysti vaikka base64-koodattuakin tunkea, mutta menee koko idea järkevästä tiedonsiirrosta, jos ei nimenomaan ole tarkoitus siirtää binääriä tietoa, esimerkiksi kuvaa.

Evästeissä siirrellään yleensä käyttäjän autentikointiin liittyviä tietoja (tokeneita jne.), ja REST-rajapinnassa muuta dataa, joka sekin on usein json-muotoista, pl. binäärit.

Äänestä

Olen Php:lla tuottanut ja lukenut jopa 50-80 megan json-dataa, hyvin on onnistunut.

Äänestä
  • Delphillä esim. lkjson toimii, joskin on kankea.

    Tosin ensimmäiseksi jos lataan netistä jonkun muun tekemän JSON tai XML -parserin Delphille, niin muokkaan koodia itse: käytän hyväksi Delphin Default Property -ominaisuutta.

    Se mahdollistaa ns. ketjuviittaukset kun jokainen JSON tai XML -ilmentymä voi palauttaa toisen ilmentymän - ja vasta viimeisen ilmentymän perään voi sitten kirjoittaa:

    .AsInteger
    .AsString
    .AsDouble
    .AsBoolean

    jne.

    haittana on se, että koska Delphi on vahvasti tyypitetty kieli - jos arvaat tyypin väärin -> poikkeus.

    ehkä se pitäisi koodata:

    Element := RootElement['Period'];

    if Element.OkAsInteger then N := Element.AsInteger else begin
    // Element ei ole tyyppiä, jota voisi käsitellä kokonaislukuna.
    end;

    Toisena harmina: nuo web -maailman kotkotukset [XML, JSON] ovat dynaamisesti tyypitettyjä - ja myös sellaisia, että aina on riski viitata olemattomaan olioon ketjutettaessa.

    Kumpi sitten parempi - sekö että ketjutus tällöin aiheuttaa poikkeuksen - vai sekö, että olisi ohjelman alussa luotu NullElement vailla sisältöä - ja sensijaan että virheellinen viittaus palauttaisi NIL, se palauttaisikin NullElement.

    kehitysvaiheessa pitäisi ehkä olla 2 ohjelmaa: se mitä olet kehittämässä, ja toinen, millä näkisi graafisessa muodossa puurakenteena XML tai JSON -sisällön - ja mihin tahansa elementtiin klikattaessa saisi automaattisesti generoidun polun ko. elementtiin.

    Äänestä

Ketjusta on poistettu 1 sääntöjenvastainen viesti.

Kommentoi aloitusta


Anonyymi kirjoitti:

koko json menee minulta c koodarilta yli. enkoodataan data johonkin tilaa vievään json-merkkijonoformaattiin ja vastaanottaja dekoodaa sen? sen sijaan että siirrettäisiin data suoraan raakamuodossa. tuohan syö ihan sikana aikaa ja resursseja! esim electronissa kaikki data siirtyy jsonina. turhaa varmaan ihmetellä miksi työpöytäsovellukset nykyään raskaita!!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu