前言
采集数据的时候经常碰到一些JSON数据的Key值不是字符串,下面就来看看用php如何解析非标准、非规范json
话不多说,直接上代码:
// 解析非标准json,注意暂时未处理 {str:["aaaa","bbb"]}
$json = preg_replace("/\s(?=\s)/", "\\1", $json);// 多个空格只留一个
$json = preg_replace("/([\{\}\,]+)\s?'?\s?(\w*?)\s?'?\s?:\s?/", '\\1"\\2":', $json);// 转义key
$json = preg_replace("/\"\s?:\'\s?(.*?)\'\s?([\,\]\}]+?)/", '":"\\1"\\2', $json);// 转义 value
// 解析非标准json,注意暂时未处理 {str:["aaaa","bbb"]}
测试数据
$json[] = "{"v-soft-list":[{typecode:"zhuanbi",gametype:"赚币",count:5},{typecode:"dongzuo",gametype:"动作",count:12},{typecode:"maoxian",gametype:"冒险",count:14},{typecode:"xiuxian",gametype:"休闲",count:61},{typecode:"zhili",gametype:"智力",count:17},{typecode:"gaoxiao",gametype:"搞笑",count:6},{typecode:"celue",gametype:"策略",count:4},{typecode:"qipai",gametype:"棋牌",count:2}]}";
$json[] ="{"asin": "0001048791", "salesRank": {"Books": 6334800}, "imUrl": "http://ecx.images-amazon.com/images/I/51MKP0T4DBL.jpg", "categories": [["Books"]], "title": "The Crucible: Performed by Stuart Pankin, Jerome Dempsey & Cast"}";
$json[] = "{csrfToken: "ffmekos3s3kc", abVersion: "", abtestMap: {}}";
解析
$semesters = json_decode($json, true);
echo $json;
var_dump($semesters);die();
最后于 2022-8-16
被admin编辑
,原因: