Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 65529 invoked from network); 21 Dec 2009 15:52:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 21 Dec 2009 15:52:43 -0000 Received: (qmail 15392 invoked by uid 500); 21 Dec 2009 15:52:42 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 15328 invoked by uid 500); 21 Dec 2009 15:52:42 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 15318 invoked by uid 99); 21 Dec 2009 15:52:42 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 21 Dec 2009 15:52:42 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 21 Dec 2009 15:52:40 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 19979234C045 for ; Mon, 21 Dec 2009 07:52:18 -0800 (PST) Message-ID: <134245028.1261410738090.JavaMail.jira@brutus> Date: Mon, 21 Dec 2009 15:52:18 +0000 (UTC) From: "Paul Joseph Davis (JIRA)" To: dev@couchdb.apache.org Subject: [jira] Commented: (COUCHDB-604) _changes feed with ?feed=continuous does not return valid JSON In-Reply-To: <1095745989.1261389018068.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/COUCHDB-604?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12793237#action_12793237 ] Paul Joseph Davis commented on COUCHDB-604: ------------------------------------------- I've met the Yeti. His name is Yajl. He's quite friendly, but no one ever really mentions the SAX thing much. Cause no one ever really produces partial JSON documents. Cause there really aren't that many SAX parsers. Cause as it turns out, SAX is a huge friggin pain in the butt. Granted this 'push parser' sounds more like a pull-dom parser. Either way, this discussion on commas is pretty weird for being about commas. The validity of that response with that content-type is debatable. AFAIK theres nothing in the specification that says you can't repeat values in a JSON stream. And there are parsers that allow for parsing multiple values. The XMPP 'infinite document' is just a clever hack around a format that explicitly denies repeated documents. If someone wants commas in that stream, then they should feel free to write a patch. But comma's have nothing to do with non-blocking i/o or other such things. Cheerio! > _changes feed with ?feed=continuous does not return valid JSON > -------------------------------------------------------------- > > Key: COUCHDB-604 > URL: https://issues.apache.org/jira/browse/COUCHDB-604 > Project: CouchDB > Issue Type: Improvement > Components: HTTP Interface > Affects Versions: 0.10 > Reporter: Joscha Feth > Priority: Trivial > > When using the _changes interface via ?feed=continuous the JSON returned is rather > a stream of JSON documents than a valid JSON file itself: > {"seq":38,"id":"f473fe61a8a53778d91c38b23ed6e20f","changes":[{"rev":"9-d3e71c7f5f991b26fe014d884a27087f"}]} > {"seq":68,"id":"2a574814d61d9ec8a0ebbf43fa03d75b","changes":[{"rev":"6-67179f215e42d63092dc6b2199a3bf51"}],"deleted":true} > {"seq":70,"id":"75dbdacca8e475f5909e3cc298905ef8","changes":[{"rev":"1-0dee261a2bd4c7fb7f2abd811974d3f8"}]} > {"seq":71,"id":"09fb03236f80ea0680a3909c2d788e43","changes":[{"rev":"1-a9646389608c13a5c26f4c14c6863753"}]} > to be valid there needs to be a root element (and then an array with commata) like in the non-continuous feed: > {"results":[ > {"seq":38,"id":"f473fe61a8a53778d91c38b23ed6e20f","changes":[{"rev":"9-d3e71c7f5f991b26fe014d884a27087f"}]}, > {"seq":68,"id":"2a574814d61d9ec8a0ebbf43fa03d75b","changes":[{"rev":"6-67179f215e42d63092dc6b2199a3bf51"}],"deleted":true}, > {"seq":70,"id":"75dbdacca8e475f5909e3cc298905ef8","changes":[{"rev":"1-0dee261a2bd4c7fb7f2abd811974d3f8"}]}, > {"seq":71,"id":"09fb03236f80ea0680a3909c2d788e43","changes":[{"rev":"1-a9646389608c13a5c26f4c14c6863753"}]}, > in short this means that if someone does not parse the change events in an object like manner (e.g. waiting for a line-ending and then parsing the line), but using a SAX-like parser (throwing events of each new object, etc.) and expecting the response to be JSON (which it is not, because its not {x:[{},{},{}]} but {}{}{} which is not valid) there is an error thrown. > I can see, that people doing this line by line might be okay with the above approach, but the response is not valid JSON and it would be nice if there were a flag to make the response valid JSON. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.