Navigacija

Vartotojų tinkle

Prisijungusių svečių: 48
Prisijungusių narių: 0
Prisijungusių narių nėra

Registruoti nariai: 25,952
Naujausias narys: tomeem

Naujausi straipsniai

Paskutiniai nariai

tomeem 1 savaitė
Reikalas 2 savaitės
weberiz 4 savaitės
mRokass 7 savaitės
kartoonas 8 savaitės
iaescortsmap 8 savaitės
ozzWANTED 9 savaitės
grunskiz11 savaitės
Bruksnys11 savaitės
illusion11 savaitės
ordo12 savaitės
Jurgaila13 savaitės
originalcs1613 savaitės
Rytis14 savaitės
halis15 savaitės
junkus18 savaitės
morlis18 savaitės
Majakas19 savaitės
andsoft20 savaitės
picolee9022 savaitės

Informacija:


OS: Unknown
Naršyklė: Nežinoma
IP: 18.116.85.72
Naujienų: 529
Straipsnių: 235
Temų: 52,584
Postų: 522,522
Postų pask. parą: 0
Shout'ų pask. parą: 0
P.S.C. pask. parą: 0
Nuorodų kataloge: 13

Lankomumo Statistika

Peržiūrų šiandien: 22

Iš viso peržiūrų: 22948724

Prisijungti

REGISTRUOTIS
Nario vardas

Slaptažodis



Pamiršai slaptažodį?
Paprašyk naujo

Aktyvuoti save

Šaukykla

Jei norite rašyti žinutes, turite prisijungti.

ozzWANTED
2024 Sau. 17 01:01:00
Desperatiškus komentarus šaukykloje su accountu po mėnesio prasibuvimo, ištryniau. Pasaulis ir taip juodas. Įjungiam šviesą, prašviesės. šypsosi

Majakas
2023 Gru. 10 19:12:39
Negaliu patikėti jog žinutės/pranešimai visi yra nuo 2008 m akinanti šypsen

Žmogus
2023 Rugs. 7 21:09:14
O gal BloodKiller pasijungs?

Apocal
2023 Rugs. 2 18:09:23
Nu davai nuveikiam kažką akinanti šypsen. Prisijungti kada visi čia akinanti šypsen.

Apocal
2023 Rugs. 2 00:09:18
Šiaip atėjau pažiūrėti ar dar lopas nesby yra ar koks ten buvo.

Šaukyklos archyvas

Apklausa

Ar esate patenkinti lietuviško vertimo kokybe?

Taip!

Taip, bet yra ką taisyti (parašysiu komentaruose)

Ne

Norėdamas balsuoti turite prisijungti.
Archyvas
Reklama 400x60
Džeisonas - Javos Skripto sūnus

Trumpai - kas tai ir su kuo valgoma:
JSON - Kas tai ?
JSON - JavaScript objektų žymėjimo kalba. (JavaScript Objects Notation)

Oficiali galūnė:
*.json

Oficiali MIME deklaracija ( http://www.iana.org/assignments/media-types/application/ ):
application/json
Pvz. <script type="text/x-json"><-script->

Alternatyvos?
XML.

Kas geriau - XML ar JSON?
Atsakymas: XML privalumas - XML schema, portabilumas į WSDL per SOAP ir kitas aplikacijas,
JSON - labiau skirtas vidiniam tinklapio naudojimui, o patį JSON'ą daugiausiai panaudoja AJAX tipo sistemos.

JSON trūkumai - XSS pavojaus galimybė, nėra date tipo formatų. JSON taip pat netinka dideliems *.json
dokumentams parsinti, kadangi visą dokumentą bando apdoroti sykiu, o ne porcijomis rodyklių pagalba.

XML privalumas - XSS atveju, galima bandyti saugotis naudojant XMLSchema su apribotais duomenų tipais.

Bazinis saugumo validatorius - rekomenduojama įvykdyti prieš interpretuoja JSON kodą:

var my_JSON_object = !(/[^,:{}[]0-9.-+Eaeflnr-u nrt]/.test(
text.replace(/"(.|[^"])*"/g, ''))) &&
eval('(' + text + ')');
 
  • Kas ir kur naudoja JSON?

Firefox source kodo bibliotekos - JSON pagrindu, jose yra aprašyti Firefox nustatymai, ir informacija.

Kas gi yra tas piliečio Javos Skripto sūnus - Džeisonas. Ar jis mums reikalingas?

JSON - tai tekstinis, žmogui suprantamas duomenų formatas atvaizduojantis duomenų struktūras ir asociatyvius masyvus.
JSON dažniausiai naudojamas Ajax'o perduoti duomenims ir yra naudojamas kaip XML alternatyva.
Pats paprasčiausias pavyzdys:

{ "vardas": "Dzeisonas",
"adresas":
{
"gatve": "Geliu 3 - 5",
"miestas": "Nida",
"salis": "Lietuva",
},
"telefonas":
[
"8 65 55001",
"8 55 23991"
]
}

JSON viduje gali būti atvaizduoti paprasti kintamieji, asociatyvus masyvas, paprastas masyvas.

Įsitikinimui, jog JSON yra labiau skaitomas ir paprastesnis nei XML, analogišką informaciją XML formatu:

<pagrindinis>
<vardas>Dzeisonas</vardas>
<adresas>
  <gatve>Geliu 3 - 5</gatve>
  <miestas>Nida</miestas>
  <salis>Lietuva</salis>
</adresas>
<telefonas>8 65 55001</telefonas>
<telefonas>8 55 23991</telefonas>

</pagrindinis>

Tiesa, JSON yra labiau human-readable kodas, užimantis mažiau vietos, bet ir pirmas ir antras dažniausiai yra generuojami sistemų, o ne rašomi rankiniu būdų. Taip pat XML yra skirtas būtent sistemoms, lengvesniam išorinių duomenų nusiskaitymui, todėl JSON ar XML dokumento apimtis nėra esminis kriterijus. Tiesa, JavaScript atveju - tai svarbu, nes JS lėtumą per milijoną operacijų smarkiai įtakoja net ir paprastas tarpas ar ilgesnio pavadinimo kintamasis(todėl naudojami PACKER ir pan. dalykai).

Beje, nors pateiktame pavyzdyje visi duomenys yra eilutės tipo, tačiau JSON palaiko ir daugiau kintamųjų tipų: eilutės(string), skaičiai(integer, real), loginės reikšmės(true, false), masyvai(buvo pavyzdyje), objektai(buvo pavyzdyje), NULL.

Kaip apdoroti duomenis gautus tokiu(JSON) formatu? Tam naudojama eval() funkcija.

var kitamasis = eval("(" + JSON_tekstas + ")");

Taip apdoroję duomenis prie jų galime prieiti kintamasis.vardas, kintamasis.adresas.salis kintamasis.telefonas[0].

Viskas labai šaunu ir atrodo labai paprasta. Ar tikrai? Laikas pakalbėti apie trūkumus.
O trūksta datos bei laiko formatų(įdomu kaip iš tokios padėties sukasi naudojantys JSON? Naudoja eilutės tipo kintamuosius ar datos iš viso nenaudoja?)

Kitas aspektas yra saugumas. Kadangi galima paduoti bet ką, tai kodėl gi nepadavus kokios nors funkcijos? Aišku, ta funkcija turėtų būti protingesnė nei tiesiog alert(). Viena iš problemų su kuria gali susidurti naudojantys JSON, tai XSS (ang. cross site scripting). Javascript turi tokią blogą savybę gautą kodą iš karto įvykdyti, todėl niekada negali būti tikras ką gausi iš JSON. Kita problema CSRF (ang. Cross Site Request Fogery), lietuviškai tai reikštų duomenų vagystės, JSON nėra labai saugus ir bet kas gali išparsinti ir pamatyti duomenų turinį, tam net nereikia labai sudėtingų įrankių ar žinių, užtenka Firefox ir keleto standartinių svetainės kūrėjų įskiepių. Daugiau nesiplėsiu saugumo problemų klausimais, paskaitykite nuorodas pateiktas straipsnio pabaigoje.

Apibendrinant, JSON yra labai paprastas ir suprantamas formatas, lengvai realizuojamas programavime. Jeigu jums svarbus perduodamos informacijos dydis, tai jis turi privalumų prieš XML.

Tačiau JSON yra parsinamas JavaScript kompiliatoriaus, kuris yra žymiai lėtesnis nei Php kompiliatorius, todėl jeigu apdorojate pvz. 200MB, išoriniu būdu gautą XML dokumentą, tai be abejonės, rodyklių aritmetikos(pointeriu) pagrindi dirbanti Php klasė - XMLReader() bus žymiai greitesnė ir gebės apdoroti visą dokumentą, nes į jį kreipiasi tik konkrečiais CHUNK'ais bei rodyklėmis. Tuo tarpu JSON, bandys ‚suvalgyti' visą tą 200MB Jūsų xml dokumentą.

Daugiau pasiskaityti galite:
Wikipedia
Oficialiame puslapyje
JSON, AJAX, & PHP
JSON AJAX Web Chat
Mastering JSON
JSON for the masses
JSON is not as safe as people think it is
Look Ma, Cross-Domain Scripting!

---
PAVYZDYS: AJAX+ JSON
JSON kodas, kurį iškviesime AJAX pagalba į mūsų HTML dokumentą:
<li>
 <script type="text/x-json" class="meta-data">
  {
   id: 1
  }
 <-script->
 <a>Click me to get ID</a>
</li>
<li>
 <script type="text/x-json" class="meta-data">
  {
   id: 2
  }
 <-script->
 <a>Click me to get ID</a>
</li>
<li>
 <script type="text/x-json" class="meta-data">
  {
   id: 3
  }
 <-script->
 <a>Click me to get ID</a>
</li>


HTML kodas, su jQuery AJAX, kuriame iškviesime aukščiau esantį JSON kodą:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 <title>jQuery And Script Tags With AJAX Data</title>
 <script type="text/javascript" src="jquery-1.3.2.js"><-script->
 <script type="text/javascript">
 
  // I am a jquery plugin that looks for script tags of class
  // meta-data and applies the JSON to its parent element in
  // the metaData key.
  jQuery.fn.applyMetaData = function(){
   // Find all the embedded script meta-data tags and
   // iterate of them to individually apply them to the
   // direct parent node.
   this.find( "script.meta-data" ).each(
    function( nodeIndex, scriptTag ){
     var script = $( this );
     var parent = script.parent();
     var metaData = {};
 
     // Try to evaluate the JSON meta data.
     try {
      metaData = eval( "(" + script.html() + ")" );
     } catch ( error ){
      // JSON was not valid.
     }
 
     // Store meta data into parent.
     parent.data(
      "metaData",
      jQuery.extend(
       {},
       parent.data( "metaData" ),
       metaData
       )
      );
    }
    )
 
    // Once the script tags have been processed,
    // remove them from the DOM.
    .remove()
   ;
 
   // Return the collection without the script tags.
   return( this.not( "script.meta-data" ) );
  }
 
 
  // I handle the html data response from the AJAX request.
  function populate( htmlData ){
   var html = $( htmlData ).applyMetaData();
 
   // Put HTML into DOM.
   $( "#list" )
    .empty()
    .append( html )
   ;
 
   // Bind click handlers.
   $( "#list a" )
    .attr( "href", "javascript:void( 0 )" )
    .click(
     function( clickEvent ){
      // Alert parent ID.
      alert( $( this ).parent().data( "metaData" ).id );
 
      // Prevent default event.
      return( false );
     }
     )
   ;
  }
 
 
  // When DOM loads, initialize.
  $(
   function(){
    // Grab the remote data via AJAX request.
    $.ajax({
     type: "get",
     url: "script3_data.htm",
     dataType: "html",
     success: populate
     });
   }
   );
 
 <-script->
</head>
<body>
 
 <h1>
  jQuery And Script Tags With AJAX Data
 </h1>
 
 <ul id="list" />
 
</body>
</html>


----
DAR VIENAS PAVYZDYS(PHP5+ ir JSON):

<?php
$json 
'{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($jsontrue));

?>


Pagal @ozzWANTED , PhpFusion-Lt.com.
Pradinės straipsnio versijos autorius, NePo @ Pixel.lt


Straipsnio informacija

Autorius
ozzWANTED
Parašymo data
2010 kovo 19 07:03:34
Komentarų
1
Skaityta
1940
Spausdinti Spausdinti
Komentarai
ozzWANTED 2010 kovo 19 07:03:03
Vietoje <-script-> visur yra </script>, tik kad tinyMCE truputi užpjauną. Vietoje to kad tiesiog į &lt;, &gt; perkoduotų. Anyway, ne esmė - manau suprasit.
Rašyti komentarą
Prisijunkite, norėdami parašyti komentarą.
Reitingai
Balsuoti gali tik nariai.

Prašome prisijungti arba prisiregistruoti.

Nėra reitingų.