从CouchDB解析JSON时如何通过"total_rows"

tab*_*don 2 jquery couchdb

我正在使用以下jQuery代码从CouchDB获取JSON文件.

Function getURL() {
   var api_url = 'http://127.0.0.1:5984/couchcontentqueue/_design/DocCollections/_view/view_all_by_url_name?key="favorite-flickr-photos"&?callback=?';

   $.getJSON(api_url, function(json) {
      var type = json.type;
      var desc = json.description;
      $("#dropBox h3").html(type);
      $("#dropBox p").html(desc);
   });
};
Run Code Online (Sandbox Code Playgroud)

当我在该URL上执行GET时,它提供以下内容:

{"total_rows":6,"offset":5,"rows":[{"id":"f5ba37e5af406ab079d596f7a1f30a2d","key":....]}

Firebug给出了以下错误:无效标签 http://127.0.0.1:5984/couchcontentqueue/_design/DocCollections/_view/view_all_by_url_name?key=%22favorite-flickr-photos%22&?callback=jsonp1304111285023 第1行

我无法弄清楚如何通过第一行来获取实际的JSON对象.有任何想法吗?谢谢.

bob*_*nce 5

?回调=

看起来您正在尝试执行JSONP请求,但是:

{"total_rows":6,...

是一个简单的JSON响应而不是JSONP调用.如果您不打算执行跨域JSONP请求,请删除该callback参数并让jQuery将响应解析为普通JSON.

如果您确实需要执行跨域JSONP请求,并且了解其安全风险,请确保使用最新的CouchDB版本并添加指令:

allow_jsonp = true
Run Code Online (Sandbox Code Playgroud)

到该[http]部分的.ini文件.

标签无效

当你尝试执行/ eval包含JSON对象的字符串时,你会得到什么.这是JS解析的一个怪癖,它在语句块"x"{"x": "foo"}被视为JavaScript'标签'(很少用于continue语句),而不是对象文字表达式中的对象属性名称.

当jQuery认为您正在执行JSONP请求时,它将使用脚本执行而不是JSON解析.在你的网址中使用'callback ='参数会让人觉得这样.