- From: <bugzilla@wiggum.w3.org>
- Date: Fri, 05 Jun 2009 19:29:29 +0000
- To: www-validator-cvs@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=7000
Summary: returned JSON output is invalid
Product: Validator
Version: 0.8.5
Platform: All
URL: http://validator.w3.org/check?uri=http%3A%2F%2Fwww.gb.co
.uk%2Fgbgroup%2Fgb-news&output=json
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: check
AssignedTo: dave.null@w3.org
ReportedBy: paul@muckingfuddled.com
QAContact: www-validator-cvs@w3.org
Hi,
I have been trying to parse the JSON output from validator, and 3 parsers, on
two platforms are failing (asp.net 2.0, and php (5.2.9) builtin json_decode
function). Making the modifications below, the parsers succeed.
I think there are 2 separate issues with commas (based on
http://www.json.org/):
1) The last element of an array (ie "explanation": "blah") should not have a
comment after it.
2) Individual "messages" should have a comma between them i.e.
"messages": [
{
"name":"param",
"name2":"param2"
}
,
{
"name":"param",
"name2":"param2"
}
]
<--- SNIP - Current output from validator based on URL (above) fails --->
{
"url": "http://www.gb.co.uk/gbgroup/gb-news",
"messages": [
{
"type": "error",
"lastLine": "317",
"lastColumn": 24,
"message": "end tag for element \"embed\" which is not open",
"messageid": 79,
"explanation": " explanation blah blah blah",
}
{
"type": "error",
"lastLine": "317",
"lastColumn": 44,
"message": "Attribute \"pluginspage\" is not a valid attribute",
"messageid": 108,
"explanation": " explanation blah blah blah ",
}
],
"source": {
"encoding": "uft-8"
}
}
<--- /SNIP --->
<--- SNIP - Removing explanation comma and adding comma between messages does
parse --->
{
"url": "http://www.gb.co.uk/gbgroup/gb-news",
"messages": [
{
"type": "error",
"lastLine": "317",
"lastColumn": 24,
"message": "end tag for element \"embed\" which is not open",
"messageid": 79,
"explanation": " explanation blah blah blah"
}
,
{
"type": "error",
"lastLine": "317",
"lastColumn": 44,
"message": "Attribute \"pluginspage\" is not a valid attribute",
"messageid": 108,
"explanation": " explanation blah blah blah "
}
],
"source": {
"encoding": "uft-8"
}
}
<--- /SNIP --->
php 5.2.9 code to Parse:
<?php
//code fails:
$jsonStr =
file_get_contents('http://validator.w3.org/check?uri=http%3A%2F%2Fwww.gb.co.uk%2Fgbgroup%2Fgb-news&output=json');
echo $jsonStr; //outputs file
$jsonObj = json_decode($jsonStr);
print_r($jsonObj); //No Output
//code works when no messages output:
$jsonStr =
file_get_contents('http://validator.w3.org/check?uri=http%3A%2F%2Fwww.gb.co.uk%2F&output=json');
$jsonObj = json_decode($jsonStr);
print_r($jsonObj); //Displays object - this page has no messages assocaited
/* file check was output from 1st invalid page, saved and then modified
* to not have commas after the explanation field, and does have commas
* between the messages:[ { ... } , { ... } ] blocks
*/
$jsonStr = file_get_contents('check');
echo $jsonStr; //outputs file
$jsonObj = json_decode($jsonStr);
print_r($jsonObj); //No Output
?>
So, have i found or bug, or do i need less caffine and more sleep?
Thanks,
Paul
--
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Friday, 5 June 2009 19:29:36 UTC