Json Kütüphanesi


    × Bunları biliyor muydunuz?
"Konsoldan 'php zerocore create-grand-vision' gibi basit bir komutla tüm veritabanı ve tablolarının model dosyasını oluşturabilirsiniz."


Json kütüphanesi JavaScript Nesne Notasyonu JavaScript object Notation (JSON) ifade edebilmek için kullanılır. PHP Json eklentisi Douglas Crockford tarafından geliştirilmiştir. ZN Json kütüphanesi ise bu eklentiye bağlı olan json_* fonksiyonlarının nesne tabanlı hale getirilmesi ile oluşturulmuştur.

 

 

# Kurulum


ZN dağıtımları için kurulum gerekmez.

↓ composer require znframework/package-protection

 

 

# Yöntemler


Json::encode(mixed $data, string $type = 'unescapedUnicode') : string
Json::decode(string $data, bool $arr = false, int $depth = 512) : array | object
Json::write(string $file, array | object $data) : bool
Json::read(string $file, bool $arr = false) : array | object
Json::check(string $data) : bool
Json::errno() : int
Json::error() : string

 

 

# Encode (ZN >= 2.0.0)


Dizi olarak gelen verileri özel verilere dönüştürür. Özellikle veritabanı sorgularında, tablonun bir sütununa birden fazla farklı türde veri kaydetmek istediğinizde kullanabilirsiniz.

Parametreler

array | object $data Özel biçimle saklanacak veri.
string $type = 'unescapedUnicode' Maske türü.
Seçenekler hexQuot, hexTag, hexAmp, hexApos, forceObject
return string

Kullanımı

echo Json::encode(['foo' => 'Foo', 'bar' => 'Bar']);
{"foo":"Foo","bar":"Bar"} 

 

 

# Decode (ZN >= 2.0.0)


Şifrelenen veriyi eski haline getirmek için kullanılır.

Parametreler

string $data Özel biçimi çözümlenecek veri.
bool $arr = false false, true Dizi mi yoksa obje türünde mi değer döndürsün.
int $depth = 512 Veri derinlik miktarı. Ön tanımlı olarak 512 boyutlu bir JSON içeriği çözülebilir.
return array | object

Kullanımı

$encode = Json::encode(['foo' => 'Foo', 'bar' => 'Bar']);

output(Json::decode($encode)->foo);
output(Json::decode($encode, true)['foo']);
Foo
Foo
DecodeArray (ZN >= 2.0.0)

Opsiyonel yöntemdir. Şifrelenen datayı dizi formuna getirmek için kullanılır.

$encode = Json::encode(['foo' => 'Foo', 'bar' => 'Bar']);

output(Json::decodeArray($encode)['foo']);
Foo
DecodeObject (ZN >= 2.0.0)

Opsiyonel yöntemdir. Şifrelenen datayı object formuna getirmek için kullanılır.

$encode = Json::encode(['foo' => 'Foo', 'bar' => 'Bar']);

output(Json::decodeObject($encode)->foo);
Foo

 

 

# Write [6.4.1][2021-01-28]


Dizi veya objeyi json dosyası içerisine yazar

Parametreler

string $file Dosya adı. .json uzantısı koymaya gerek yoktur.
array | object $data Özel biçimle saklanacak veri.
return bool

Kullanımı

Json::write('example', ['foo' => 'Foo', 'bar' => 'Bar']);

 

 

# Read [6.4.1][2021-01-28]


Json dosyasının içeriğini parametreye bağlı olarak array veya objeye çevirir.

Parametreler

string $file Dosya adı. .json uzantısı koymaya gerek yoktur.
bool $arr = false Dizi mi? True ayarlanması durumunda [ array ] belirtilemez veya false belirtilirse [ object ] türünde değer döndürür.
return array | object

Kullanımı

output(Json::read('example'));
(object) ['foo' => 'Foo', 'bar' => 'Bar']

[$arr = true]

Bu parametrenin true ayarlanması durumunda ise yöntem array türünde dönüş sağlar.

output(Json::read('example'));
(array) ['foo' => 'Foo', 'bar' => 'Bar']
ReadArray [6.4.1][2021-01-28]

Opsiyonel yöntemdir. Json::read($file, true) kullanımı gibidir.

output(Json::readArray('example'));
ReadObject [6.4.1][2021-01-28]

Opsiyonel yöntemdir. Json::read($file) kullanımı gibidir.

output(Json::readArray('example'));

 

 

# Check (ZN >= 4.0.0)


Şifrelenen datanın json verisi olup olmadığını kontrol etmek için kullanılır.

Parametreler

string $data Kontrol edilecek json veri.
return bool

Kullanımı

$encode = Json::encode(['foo' => 'Foo', 'bar' => 'Bar']);

if( Json::check($encode) )
{
    # your codes
}
else
{
    # your codes
}

 

 

# Error / Errno (ZN >= 2.0.0)


Json işleminde hata olup olmadığını bildirir.

Parametreler

return bool

Kullanımı

echo Json::error();
echo Json::errno();