PHP kullanarak geçersiz JSON ayrıştırma

2 Cevap php

Ben geçersiz JSON JSON besleme çekiyorum. Bu tamamen tırnak eksik. Ben geçerli JSON gibi biraz daha seyir dize almak için explode() ve str_replace() gibi bir kaç şey, denedim, ama içinde bir ortak JSON dizesi ile, genellikle vidalı alır kadar.

İşte bir örnek:

id:43015,name:'John Doe',level:15,systems:[{t:6,glr:1242,n:'server',s:185,c:9}],classs:0,subclass:5

Böyle geçersiz JSON işleyebilir orada php için herhangi bir JSON ayrıştırıcılarda var mı?

Düzenleme: Ben bu dizesi json_decode() kullanmaya çalışıyorum. Bu hiçbir şey döndürür.

2 Cevap

Seni çözmek için çalışıyoruz JSON nesi var biliyorum, özellikle, en iyi bahis onunla bir JSON dekoder kaynağını (onlar çok büyük değil) ve keman indirmek olduğunu söyleyebilirim.

Örnek yardımcı olabilir ki, çevresinde çok ihtiyaçları {} sağladı.

Benim deneyim Marko'nun cevabı artık çalışmıyor. Yeni php sürümleri bu Istead kullanmak için:

$a = "{id:43015,name:'John Doe',level:15,systems:[{t:6,glr:1242,n:'server',s:185,c:988}],classs:0,subclass:5}";
$a = preg_replace('/(,|\{)[ \t\n]*(\w+)[ ]*:[ ]*/','$1"$2":',$a);
$a = preg_replace('/":\'?([^\[\]\{\}]*?)\'?[ \n\t]*(,"|\}$|\]$|\}\]|\]\}|\}|\])/','":"$1"$2',$a);
print_r($a);