php.toJSON

2012.06.08. 10:23 stack

Nekem ez már régóta hiányzott! PHP 5.4-ben van végre toJSON! :)

class B implements JsonSerializable {
    private $name;
    public function __construct ($name) {
        $this->name = $name;
    }
    public function jsonSerialize () {
        return get_object_vars($this);
    }
}
$b = new B('Béla');
echo json_encode($b); // {"name":"B\u00e9la"}

Szólj hozzá!

Címkék: php json

Date.toJSON()

2010.11.25. 18:46 stack

Ha egy dátum típusú változót akarunk JSON formára alakítani, akkor a natív és az alapértelmezett JSON feldolgozás között van némi különbség.

"2010-11-25T18:38:15.005Z"
"2010-11-25T18:38:15"

Míg a natív megoldást a Date.prototype.toJSON, addig a másikat az Ext.util.JSON.encodeDate felülírásával lehet módosítani. (csak zárójelben, ennek a másodiknak nincs túl nagy haszna)

Ext.USE_NATIVE_JSON = true;
Date.prototype.toJSON = function () {
    return this.format("Y-m-d H:i:s");
}
Ext.util.JSON.encodeDate = function (date) {
    return '"' + date.toJSON() + '"';
}

Ja, és továbbra is érdemes a natív JSON-t használni, mert az jó!

Szólj hozzá!

Címkék: date json

String.isJSON()

2009.12.01. 22:58 stack

Egy string-ről legkönnyebben úgy tudjuk megállapítani, hogy JSON vagy sem, hogy megpróbáljuk átalakítani. Ha sikerült, akkor az, ellenkező esetben pedig nem, ilyen egyszerű. :)

Ext.override(String, {
    isJSON: function () {
        try {
            Ext.decode(this);
            return true;
        } catch(e) {
            return false;
        }
    }
});

Szólj hozzá!

Címkék: override string json

Store.toJSON()

2009.11.26. 23:20 stack

Store teljes tartalma JSON alakban:

Ext.override(Ext.data.Store, {
    toJSON: function () {
        var items = [];
        this.each(function (record) {
            items.push(Ext.encode(record.data));
        });
        return '[' + items.join(',') + ']';
    }
});

Szólj hozzá!

Címkék: store override json

Native JSON

2009.10.03. 23:52 stack

A JSON formátum ellen a leggyakoribb kritika az eval miatti sebezhetőség. Én ezt túllihegett problémának érzem. De kétségtelen, hogy előfordulhat olyan példa, amikor kellemetlen következménye lehet a JSON értelmezés közben alkalmazott eval használatának. (bár ilyen eseteknél nem az eval az egyedüli probléma) Talán emiatt is lehetett, hogy nemrégibben több böngészőgyártó a JavaScript-hez hozzáadta az un. natív JSON kiegészítést. Így már az eval helyett használhatja az ember a beépített JSON elemzőt.

Amiért ez számomra érdekes volt, hogy meglepően gyorsabb az eval-nál.

Szólj hozzá!

Címkék: eval json

JSON + [undefined]

2009.09.16. 19:01 stack

Nagyon közhely: rossz kódban, rossz hibák vannak, és rossz azokat keresni! :)

PHP-ban valamiért összekeveredik a lista és az asszociatív tömb, talán emiatt is sokszor JavaScriptben is találni olyan példákat, hogy egy elem tulajdonságai nem Object-ben, hanem Array-ban vannak. (előre meghatározott sorrendben). Azontúl, hogy nagyon kerülendő ez a megoldás, még komoly hibaforrás is lehet, ha valamelyik tulajdonság undefined is lehet, majd mindezt valamiért JSON-nal el akarnánk kódolni.

var a = [undefined, 'Hello világ!', 100];
var b = Ext.util.JSON.decode(Ext.util.JSON.encode(a));
alert('a: ' + a.length + '; b: ' + b.length);

Eredmény: "a: 3; b:2". és ugye azt mondani sem kell, hogy az indexek eggyel elcsúsztak... Meg lehetne hack-elni az encode-t, hogy készüljön fel erre az extrém esetre, de jobb inkább ezt az egészet elkerülni...

Szólj hozzá!

Címkék: array json undefined

JSON viewer

2009.07.23. 12:03 stack

Általában mindenkinek azt szoktam ajánlani, hogyha teheti, akkor XML helyett JSON-nal kommunikáljon. Gyorsabb, könnyebb kezelni, rövidebb adat, típusosabb stb. Persze azért vannak hátrányai is… de ugye valamit valamiért. :)

Annyiból mindenképpen macerássabb, hogy a böngésző alapértelmezetten nem tudja szépen, átláthatóan megjeleníteni, ahogy az XML-t. Külső programok vannak erre, de némelyikhez még külön dll-t is fel kell pakolni a gépre. Nem olyan régen elkészítettem magamnak az egyik ilyen program online változatát, hogy kényelmesen mindenhol elérhessem.

7 komment

Címkék: viewer json

ExtJS blog, mi ez?

Az ExtJS egy JavaScript keretrendszer, melyet a blog írója elfogultan a legjobbnak tart, és ez a blog olyan apróságok gyűjteménye, melyek ExtJS használata közben felmerültek, eszébe jutottak...

Címkék

ajax (4) alignto (1) állás (3) analytics (1) anchorto (1) android (4) animate (2) array (9) auto (1) back button (1) beautifier (1) beforeevent (1) benchmark (1) blur (1) budapest.js (1) button (1) canvas (1) capture (1) case sensitive (1) center (1) change (1) cikkajánló (1) class (2) closure compiler (1) collapse (1) combobox (3) comment (1) console.log (2) contextmenu (2) core (2) count (1) css (15) csv (1) dataview (1) date (4) datefield (3) datepicker (1) debug (1) doksi (1) dragdrop (1) easing (1) eclipse (1) editor (1) element (5) error (5) eval (2) event (1) fejtörő (1) field (2) fieldset (1) filter (1) firefox (4) firefox extension (2) focus (3) fonts (1) fun (1) function (1) google (2) google chrome (1) grayscale (1) grid (4) group contact (1) header (3) height (2) hidden (1) hirek (2) history (1) htaccess (1) html5 (2) htmleditor (2) https (1) icon (3) id (2) ie (2) ie6 (1) ie9 (1) iframe (3) image (2) indexof (1) javascript (1) jquery (2) jslint (2) jsmin (1) json (7) keymap (1) kipróbálom (2) könyvajánló (2) label (1) layout (1) lint (1) log (1) loop (1) magyar (2) mandelbrot (1) mask (1) math (1) maxlength (1) mistake (1) mysql (5) napi szívás (16) nem extjs (12) node (1) nth child (1) number (1) off (5) offline (1) operator (1) override (20) pagesize (1) paging (2) panel (2) php (7) picker (1) plugin (3) pozicionálás (2) preload (1) print (1) propertygrid (1) pseudo (3) readonly (2) record (1) regexp (1) replace (1) resizable (1) rotate (1) round (1) scale (1) sencha touch (2) server (1) shuffle (1) slider (1) sort (3) sortable (1) store (2) string (7) sum (1) tabchange (1) tabpanel (1) tab key (2) tdd (1) template (1) textarea (2) textfield (1) textitem (1) theme (2) throw (1) timer (1) timestamp (1) title (2) toggle (1) toolbar (6) tools (1) total count (1) transparent (1) tree (1) treenode (1) trigger (1) truncate (1) try (1) ucfirst (1) undefined (2) unique (1) unload (1) urlencode (1) utf8 (2) verzió (1) video (1) viewer (1) viewport (2) visible (2) vtype (1) window (2) xtype (1) zindex (2)

Extjs.blog.hu - RSS

Kérdés?