如何根据 URL 的输出设置 JavaScript 数组
How to set a javascript array based on the output of a URL?
我有一个MVC应用程序,当我访问某个URL时,它会在浏览器中产生以下输出:
[{"name":"Victoria Day","date":"'/Date(1337583600000)'/"},{"name":"Canada Day","date":"'/Date(1341212400000)'/"},{"name":"Civic Holiday","date":"'/Date(1344236400000)'/"},{"name":"Labour Day","date":"'/Date(1346655600000)'/"},{"name":"Thanksgiving","date":"'/Date(1349679600000)'/"},{"name":"Remembrence Day","date":"'/Date(1352707200000)'/"},{"name":"Christmas","date":"'/Date(1356422400000)'/"},{"name":"Boxing Day","date":"'/Date(1356508800000)'/"}]
当然,源代码周围有一堆 html 标签。
如何将这些原始信息分配给 Javascript 数组?
考虑到您的 http 请求返回您发布的原始数据,您应该能够使用:
var text = $.trim($(document.body).text());
var cleanedText = text.replace(/'''/Date'(/g,"").replace(/')'''//g,"");
var holidays = $.parseJSON(cleanedText); // This is your array!
alert("Loaded " + holidays.length + " holidays. Fifth one is " + holidays[4].name + " celebrated on " + new Date(parseInt(holidays[4].date)).toString());
// Output(the dates should be printed with your preferred timezone offset):
// Loaded 8 holidays. Fifth one is Thanksgiving celebrated on Mon Oct 08 2012 10:00:00
// GMT+0300 (GTB Daylight Time)
如果要解析的输出位于其他地方,则应使用自定义选择器通过 var 中的 jQuery 加载它text
。请注意,var cleanedText
从日期值中删除坏字符,以便将它们解析为有效的 javascript Date 对象。
如果您有其他问题,请发表评论。祝你好运!
JSFiddle工作示例:单击此处
编辑:你需要jQuery。
Edit2:我认为您需要使用$.get
才能从自定义URL中检索数据(确保它来自同一服务器,否则您可能会遇到浏览器安全问题(。您应该对此进行一些尝试,并尝试检查您的请求是否转到服务器上的正确路径(例如,您可以在"网络"选项卡上的"开发人员工具"下的Google Chome浏览器上检查所有请求数据(。您应该更改function(data) {
的内容以满足您的需求。
var url = 'page.html'; // You should change this with the url that returns your data.
$.get(url, function(data) {
alert('The response is: ' + data); // Make sure it's ok
var text = $.trim(data);
var cleanedText = text.replace(/'''/Date'(/g,"").replace(/')'''//g,"");
var holidays = $.parseJSON(cleanedText); // This is your array!
alert("Loaded " + holidays.length + " holidays. Fifth one is " + holidays[4].name + " celebrated on " + new Date(parseInt(holidays[4].date)).toString());
});
获取 jQuery 并使用 jQuery.getJSON,例如...
这
称为JSON。你可以使用像 json2.js 这样的外部库来解析它,或者如果你不关心旧浏览器,请使用本机版本,
var myData = JSON.parse('..data');
相关文章:
- Gulp设置javascript对象
- 能够在指向本地环境的浏览器中设置JavaScript断点
- 设置javascript函数中文本框的值
- 没有通过ajax调用设置Javascript全局变量
- 设置Javascript倒计时计时器的初始值
- 如果为null,则设置javascript变量的值
- 如何在我用作参数的函数中设置Javascript中的本地变量
- 在 shopify 上设置JavaScript弹出窗口的样式
- 在 for 循环中设置 Javascript 变量
- 设置JavaScript变量以稍后检查定义
- 在Ruby Slim文件中设置Javascript类型
- 设置JavaScript数组
- 设置javascript对象多级属性的简单方法
- 如何正确设置 JavaScript 命名空间和类
- 在代码隐藏中从DataTable设置javascript数组
- 使用Set属性在JSP:UseBean中设置javascript变量值
- 如何设置javascript中引用的文档的URL
- MVC 5视图-设置Javascript变量
- 如何设置javascript闭包的上下文
- 设置javascript文件的版本.Java EE+Tomcat