如何将整个YQL结果保存在javascript对象中
How to save the whole YQL result in an javascript object?
我想保存我的YQL查询的结果在一个javascript对象
my query:
SELECT * FROM html WHERE url="http://myurl.com" and xpath="/html/body/center/table[1]/tr"
我该如何继续?我读了YQL的文档,但我认为它真的很复杂。我也在stackoverflow上搜索过,但它并没有真正帮助我。
对象应该和JS中的普通JSON对象一样。
对
您可以使用JSONP方法获取此数据。脚本:
<script src="http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20html%20WHERE%20url%3D%22http%3A%2F%2Fghse%3A12-13%40www.ghse.de%2Fvplan%2F12%2Fc%2Fc00082.htm%22%20and%20xpath%3D%22%2Fhtml%2Fbody%2Fcenter%2Ftable%5B1%5D%2Ftr%22&format=json&callback=callback"></script>
用于处理响应的回调:
function callback(data) {
console.log(data);
}
http://jsfiddle.net/bdCHz/还可以查看YQL控制台测试器以获取详细信息。
这只是一个如何手动检索JSON的示例。你可以使用jQuery等来发出JSONP请求
您可能无法一次性保存所有内容,但您可以通过获取您需要的特定信息来保存数据,将其组织成一个数组,并保存该数组:
function getXML(Your_XML_URL) {
// Build the YQL query
var qryRSS = 'select * from rss where url=' + '"' + feed + '"';
// Initiate the YQL query
$.getJSON("http://query.yahooapis.com/v1/public/yql",
{
// These are the settings for your API call
q: qryRSS,
format: "json"
},
// Take the data you got from the YQL server and output it to the screen. The variable "data" holds the JSON you got back from the YQL server.
function (data) {
var myArrayName = [];
// Create an object for each entry. If you don't want every entry in the XML files you can change data.query.results.item.length to whatever number you want.
for (var i = 0; i < data.query.results.item.length; i += 1) {
var singleEntry = {};
dataLoc = data.query.results.item[i];
var singleEntry.title = dataLoc.title; //You would replace these
var singleEntry.pub = dataLoc.pubDate; //with the names of the tags
var singleEntry.image = dataLoc.thumbnail.url; //in your XML file.
var singleEntry.url = dataLoc.link;
var singleEntry.desc = dataLoc.description;
//Add your object to the array.
myArrayName.push(singleEntry);
}
localStorage.setItem("mySavedItem", JSON.stringify(myArrayName));
});
}
然后您可以稍后使用:
检索该信息:var myXMLArray = JSON.parse(localStorage.getItem("mySavedItem"));
console.log(myXMLArray[0].title);
console.log(myXMLArray[2].pub);
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何将getJson的响应保存在全局变量中
- 按下按钮时保存cookie
- 如何使用 Angular JS 将数据保存在数据库中
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 用于检查数组中是否存在元素的javascript自定义方法
- HTML5在画布中加载较小的图像并保存实际大小的图像
- 是否可以在浏览器中使用纯JavaScript保存音频流
- 如何将多个画布保存为一个图像
- 使用javascript/jquery从现有数组中创建一个新数组,该数组保存项目存在的次数
- jQuery localStorage 如果存在,请保存它
- 如何在移动到新的HTML页面后使用保存在Javascript文件中的保存变量
- 根据页面元素的存在更改文件路径以保存页面内容
- 如何比较保存在变量中的querystring参数,并将变量保存在cookie中,并在每页上进行比较
- 在Json解析和在数据库中保存值方面存在问题
- 将对象替换为保存前已经存在的对象
- 如何在Mongoose中保存之前检查数据库中是否存在嵌入文档