当前位置: 首页 > 面试题库 >

使用PHP的无效JSON解析

终彬郁
2023-03-14
问题内容

我正在提取无效的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()在此字符串上使用。它什么也不返回。


问题答案:
  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));
    }
    


 类似资料:
  • 问题内容: 我正在尝试从Google购物API中提取数据。我能够成功下载数据,但是在使用PHP解析数据时遇到了麻烦。我仍在学习,但是我似乎在多维数组方面遇到问题。我使用捕获JSON 。 以下只是呼应外部数组,但我不能从内部数组中提取: 如果要获取每个产品的“标题”,“描述”,“品牌”和“可用性”,我将如何解析? 问题答案: 您的JSON是数组 和对象 的混合 体 。因此,数组表示法不适用于所有项目

  • 问题内容: 我将这个JSON对象存储在纯文本文件中: 当我尝试使用解码时,它返回NULL。为什么?该文件是可读的(我尝试了回显,但工作正常)。 我已经针对http://jsonlint.com/测试了JSON ,它非常有效。 怎么了 在Google上寻找答案,我回到SO:调用webservice后json_decode返回NULL。我的JSON文件具有UTFBOM序列(一些不应包含的二进制字符),

  • 本文向大家介绍PHP使用foreach解析JSON数组,包括了PHP使用foreach解析JSON数组的使用技巧和注意事项,需要的朋友参考一下 以下代码可用于解析JSON数组- 示例 输出结果 这将产生以下输出-

  • 问题内容: 我将这个JSON对象存储在纯文本文件中: 当我尝试用解码时,它返回NULL。为什么?该文件是可读的(我尝试了回显,但工作正常)。 我已经针对http://jsonlint.com/测试了JSON ,它是完全有效的。 怎么了 问题答案: 它可以是特殊字符的编码。您可以要求 json_last_error() 获得确切的信息。 更新:问题已解决,请查看问题中的“解决方案”段落。

  • 问题内容: 我试图使用PHP解析JSON文件。但是我现在被困住了。 这是我的JSON文件的内容: 到目前为止,这是我尝试过的: 但是,因为我不知道的名字(例如,)和所有可用键和值(如,)事前,我想我需要创建一些foreach循环。 我希望为此举一个例子。 问题答案: 要遍历多维数组,可以使用RecursiveArrayIterator 输出:

  • 问题内容: 我有一个非常简单的json,无法使用simplejson模块进行解析。再生产: 结果: 任何人都知道出了什么问题以及如何正确解析上面的json吗? 在那里编码的字符串是: Variées PS我使用python 2.5 非常感谢! 问题答案: 那是完全正确的;包含无效的转义符,JSON标准不允许后面跟数字。 无论产生什么代码,都应该修复。如果那是不可能的,那么您将需要使用正则表达式删除