前言
采集数据的时候经常碰到一些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: {}}";
附php解析JSON数据示例代码:
data.json
{ "name":”yudabo“, "score":100 }
PHP
$json_string = file_get_contents('json/data.json'); $data = json_decode($json_string, true); echo $data['name'].' '.$data['score'];
到此这篇关于php解析非标准json、非规范json的文章就介绍到这了,更多相关php解析非标准、非规范json内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
问题内容: 任何人都知道以下代码是什么类型的JSON(即使是这样!)?我正在从网站的HTML检索此信息。我正在尝试使用JSON解析器在C#中对其进行解析,但是我必须做大量的准备工作,才能根据JSONLint将其格式化为“有效” JSON。例如,变量的名称应全部用双引号而不是根本没有引号。 这将始终具有相同的格式,我很想直接将其解析为C#或Java对象。 问题答案: JSON要求所有名称都必须用双引
问题内容: 可以说我有以下json 我想将其解码为以下结构 像这样 这给了我错误 如果我要手动解析它,我会这样做 但是,当时间值来自json字符串时 ,我如何使解码器以上述格式解析它? 问题答案: 在这种情况下,您需要实现自定义编组和非编组功能。 通过遵循json包的Golang文档中的示例,您将获得以下内容:
我有以下格式的json(不限于像本例中那样的两个文档,可能有很多、更多): 我想从本质上将多种此类json文档“非规范化”为一个json文档,如下所示: 还想添加类似的东西 应转化为: 到目前为止,我对Jolt的有限理解使我相信这种转换是可能的,但从所提供的文档中还不清楚如何进行这种转换。任何有关Jolt规范的帮助都将不胜感激!!
PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。
非规范化数据不存储规范化的数据。换句话说非规范化意味着相同数据的多个拷贝同时存在。 上一章中,我们在帖子中非规范化评论总数,以避免每次都加载所有的评论。在数据建模意义上说这是冗余的,因为我们可以通过计数每个评论,随时计算出该总数(当不考虑运行速度)。 非规范化通常意味着额外的开发工作。在例子中,我们每次添加或删除评论时,还需要同时更新相关的帖子,以确保 commentsCount 字段保持准确。这
问题内容: 如何在Go中解析非标准的日期/时间字符串。例如,如果我想将字符串转换为?该功能应该允许您指定格式。 http://play.golang.org/p/v5DbowXt1x 这导致了恐慌。 从逻辑上讲这是有道理的,因为它应该如何知道哪一天和哪一个月。 其他语言具有类似于以下功能: 我在Go文档中找不到这样的功能,我唯一选择正则表达式吗? 问题答案: time.Parse正在寻找一些关键值