ahgsql / json-repair-php
PHP library to repair broken/invalid JSON strings, especially from LLM outputs
dev-main
2025-03-10 20:49 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is not auto-updated.
Last update: 2025-05-06 20:15:19 UTC
README
PHP kütüphanesi ile bozuk/geçersiz JSON stringlerini onarın, özellikle LLM (Dil Modeli) çıktılarından.
Özellikler
- Eksik tırnak işaretlerini düzeltme
- Eksik virgülleri düzeltme
- LLM çıktılarından JSON içeriğini çıkarabilme
- Tırnak içine alınmamış anahtarları düzeltme
- String olmayan değerleri (sayı, boolean, null) otomatik tanıyabilme
- İç içe objeleri ve dizileri destekleme
Kurulum
Composer ile kurulum:
composer require ahgsql/json-repair-php
Kullanım
Temel Kullanım
<?php use JsonRepair\JsonRepair; // Bozuk JSON stringini onar ve PHP dizisi olarak döndür $jsonStr = '{ name: "John", age: 30, isActive: true }'; $result = JsonRepair::loads($jsonStr); print_r($result); // Çıktı: Array ( [name] => John [age] => 30 [isActive] => 1 ) // Bozuk JSON stringini onar ve JSON string olarak döndür $jsonStr = '{ name: "John", age: 30, isActive: true }'; $result = JsonRepair::repairJson($jsonStr); echo $result; // Çıktı: {"name":"John","age":30,"isActive":true}
LLM Çıktılarından JSON Çıkarma
<?php use JsonRepair\JsonRepair; // LLM çıktısından JSON içeriğini çıkar $llmOutput = 'Anlıyorum işte size uygun bir JSON: ```json { "title": "Başlık", "items": [1, 2, 3] }```'; $result = JsonRepair::loads($llmOutput); print_r($result); // Çıktı: Array ( [title] => Başlık [items] => Array ( [0] => 1 [1] => 2 [2] => 3 ) )
Dosyadan JSON Okuma
<?php use JsonRepair\JsonRepair; // Dosyadan JSON oku ve onar $result = JsonRepair::fromFile('data.json'); print_r($result);
Seçenekler
<?php use JsonRepair\JsonRepair; // Tüm seçeneklerle kullanım $jsonStr = '{ "name": "Türkçe Karakter İçeren İsim" }'; $result = JsonRepair::repairJson($jsonStr, [ 'returnObjects' => false, // true: PHP dizisi döndürür, false: JSON string döndürür 'skipJsonParse' => false, // true: json_decode kontrolünü atlar 'logging' => false, // true: onarım loglarını da döndürür 'ensureAscii' => false // false: Unicode karakterleri korur ]); echo $result; // Çıktı: {"name":"Türkçe Karakter İçeren İsim"}
Geliştirme
Gereksinimleri Yükleme
composer install
Testleri Çalıştırma
./vendor/bin/phpunit tests
Lisans
MIT