我正在编写一个Open Data Table来汇总来自各种社交网络服务的计数。
我可以在YQL控制台找到here的尝试,开放数据表格式为here。
我当前的问题 - 正如您将在尝试我的查询时发现的那样 - 是Twitter和Facebook的请求返回一个空的响应对象:
org.mozilla.javascript.UniqueTag@399a063e:NOT_FOUND
而不是使用每个相应服务返回的JSON填充它。
我认为 rest 对象中返回的非零内容长度标头表示YQL服务器已收到正确的JSON回复,因此问题是不论是在YQL还是在我的ODT方面,都在Web服务方面。
我试图以各种方式解决这个问题并且没有成功。有些YQL专家可以帮帮我吗?
谢谢。
答案 0 :(得分:0)
我找到了我的解决方案,这可能是YQL服务器中的错误。
当Web服务返回带有 content-type 'application / json'的内容时,YQL会将其解析为E4X format,这是JavaScript的xml表示形式。为什么会这样,我没有任何线索,因为JSON应该被解析为JavaScript对象。
此 E4X 格式的问题似乎是它只能在调用 y.rest()时提供的可选回调函数中访问。
当尝试将数据位存储到变量中并将其应用于 response.object 对象时,我发现控制台将返回NOT FOUND错误。这意味着我认为我存储到变量中的不是这些社交按钮计数的字符串或整数值,而是对E4X节点的引用。
为了解决这个问题,我在节点上执行了 parseInt 魔术来获取我的数字。
我相信这种行为很奇怪,很可能是一个意想不到的错误。希望开发人员能够了解这个问题,以防止将来出现混淆。