一尘不染

使用PHP的无效JSON解析

json

我正在提取无效的JSON
JSON提要。它完全缺少引号。我尝试了一些操作,例如explode()str_replace(),以使该字符串看起来更像有效的JSON,但是在其中包含关联JSON字符串的情况下,通常会弄糟。

这是一个例子:

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

是否有任何php的JSON解析器可以处理这样的无效JSON?

编辑:我试图json_decode()在此字符串上使用。它什么也不返回。


阅读 277

收藏
2020-07-27

共1个答案

一尘不染

  1. 所有引号应为双引号"而不是单引号'
  2. 所有键都应加引号。
  3. 整个元素应该是一个对象。
    函数my_json_decode($ s){
        $ s = str_replace(
            array('“',”'“),
            array('\“','”'),
            $ s
        );
        $ s = preg_replace('/(\ w +):/ i','“ \ 1”:',$ s);
        返回json_decode(sprintf('{%s}',$ s));
    }
    
2020-07-27