Uploaded image for project: 'CouchDB'
  1. CouchDB
  2. COUCHDB-604

_changes feed with ?feed=continuous does not return valid JSON

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Trivial
    • Resolution: Won't Fix
    • 0.10
    • 2.0.0
    • HTTP Interface
    • None
    • Committers Level (Medium to Hard)

    Description

      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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            joscha Joscha Feth
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: