Json Kütüphanesi


    × Bunları biliyor muydunuz?
"URL::base() ve URL::site() kullanımları farklıdır. Özellikle varlık dosyalarına yol verilirken URL::base(), [a] etiketi ile köprü oluştururken URL::site() kullanılmalıdır."


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


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


Ş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

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

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


Ş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


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

Parametreler

return bool

Kullanımı

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