这是W3C的公共bugzilla错误跟踪程序的存档快照,该程序于2019年4月退役。请参阅主页了解更多详细信息。

错误7000 -返回的JSON输出无效
摘要: 返回的JSON输出无效
状态: 断然的固定的
别名:
产品: 验证器
分类: 未分类
组件: 检查(显示其他错误)
版本: 0.8.5
硬件: 全部全部
: 第2页正常的
目标里程碑: 0.8.6
受让人: 维尔·斯凯特
QA联系人: qa-dev跟踪
网址: http://validator.w3.org/check?uri=htt。。。
白板:
关键词:
取决于:
阻碍:
 
报道: 2009-06-05 19:29 UTC由保罗·史密斯
被改进的: 2010年3月3日17:18 UTC(历史)
1用户(显示)

另请参阅:


附件

描述 保罗·史密斯 2009年6月5日19:29:29 UTC
你好,我一直在尝试解析验证器的JSON输出,有三个解析器在两个平台上都失败了(asp.net 2.0和php(5.2.9)builtin JSON_decode函数)。进行以下修改后,解析器成功了。我认为有两个单独的逗号问题(基于http://www.json.org/)以下为:1) 数组的最后一个元素(即“解释”:“blah”)后面不应该有注释。2) 单个“消息”之间应使用逗号,即。“消息”:[{“name”:“param”,“name2”:“param2”}, {“name”:“param”,“name2”:“param2”} ]<---SNIP-基于URL(以上)的验证器当前输出失败--->{“url”:“http://www.gb.co.uk/gbgroup/gb-news",“消息”:[{“type”:“错误”,“lastLine”:“317”,“最后一列”:24,“message”:“元素“embed”的结束标记未打开”,“messageid”:79,“解释”:“解释”,}{“type”:“错误”,“lastLine”:“317”,“最后一列”:44,“message”:“属性\”pluginspage\“不是有效属性”,“messageid”:108,“解释”:“解释等等”,}],“来源”:{“编码”:“uft-8”}}<---/SNIP--><---SNIP-删除解释逗号并在消息之间添加逗号会解析--->{“url”:“http://www.gb.co.uk/gbgroup/gb-news",“消息”:[{“type”:“错误”,“lastLine”:“317”,“最后一列”:24,“message”:“元素“embed”的结束标记未打开”,“messageid”:79,“解释”:“解释”},        {“type”:“错误”,“lastLine”:“317”,“最后一列”:44,“message”:“属性\”pluginspage\“不是有效属性”,“messageid”:108,“解释”:“解释”}],“来源”:{“编码”:“uft-8”}}<---/SNIP-->php 5.2.9要解析的代码:<?php(电话)//代码失败:$jsonStr=文件获取内容('http://validator.w3.org/check?uri=http%3A%2F%2Fwww.gb.co.uk%2Fgbgroup%2Fgb-新闻输出=json');echo$jsonStr//输出文件$jsonObj=json_decode($jsonStr);print_r($jsonObj)//无输出//代码在没有消息输出时工作:$jsonStr=文件获取内容('http://validator.w3.org/check?uri=http%3A%2F%2Fwww.gb.co.uk%2F&output=json');$jsonObj=json_decode($jsonStr);print_r($jsonObj)//显示对象-此页面没有关联的消息/*文件检查是从第一个无效页面输出的,保存后再修改*解释字段后没有逗号,并且确实有逗号*消息之间:[{…},{…{]块*/$jsonStr=文件获取内容('check');echo$jsonStr//输出文件$jsonObj=json_decode($jsonStr);print_r($jsonObj)//无输出?>那么,我有没有发现或出现问题,或者我需要更少的咖啡因和更多的睡眠?谢谢,保罗
评论1 维尔·斯凯特 2009年6月29日18:38:53 UTC
你说得很对。除了这两个问题之外,JSON转义“msg”和“explain”值也是不正确的。所有这些现在都已在CVS中修复,应该可以在以下位置进行测试http://qa-dev.w3.org/wmvs/HEAD/很快。
评论2 维尔·斯凯特 2010年3月2日19:26:52 UTC
许多错误都已修复,但不幸的是,仍有一些错误(某些XML解析错误中的lastColumn编号无效),这显然是由于validator.w3.org生产盒上的旧(ish)XML::LibXML造成的。CVS正在等待下一个版本。
评论3 特德公会 2010年3月3日04:00:37 UTC
(答复评论#2)>修复了许多错误,但遗憾的是,仍有一些错误(lastColumn无效>一些XML解析错误中的数字),这显然是由于旧的(ish)>validator.w3.org生产盒上的XML::LibXML。CVS正在等待解决方案>用于下一版本。安装了较新的libxml并传递了示例json输出http://www.jsonlint.com/我还用Ville的最新版本升级了验证器检查。
评论4 维尔·斯凯特 2010年3月3日17:18:32 UTC
谢谢,结束。