使用ajax调用获取json对象,包含3个数组,并将数组传递给javascript
fetch json object containing 3 arrays with ajax call and pass arrays to javascript
我有一个创建以下输出的页面:
<script>
var JSONObject = { "groups":['1210103','1210103','1210103','1210405'],
"prices":['279,00','399,00','628,00','129,00'],
"titles":['','','','']
};
</script>
此页面由ajax调用调用:
$.ajax({url:plink,success: function(result) { }
我现在需要接收json数组并将它们传递给普通javascript数组。我怎么做呢?
我试过了:
result = jQuery.parseJSON(data);
mygroups = result.groups;
myprices = result.prices;
mylabels = result.titles;
更改您的页面,使其仅生成JSON:
{"groups":["1210103","1210103","1210103","1210405"],
"prices":["279,00","399,00","628,00","129,00"],
"titles":["","","",""]
}
请注意,在JSON中,必须使用"
,而不是'
来引用字符串。
让它返回application/json
的Content-Type
头。如果由于某种原因你不能在响应上设置正确的Content-Type
头,你可以通过在你的ajax
调用中添加dataType: 'json'
来强制jQuery将响应作为JSON处理,但最好使用正确的content-Type
。
然后在ajax
调用的success
回调中,result
将已经是具有三个属性(groups
, prices
, titles
)的反序列化对象,这将是您可以使用的JavaScript数组。
实例|来源
你已经在下面的评论中说过,这个页面是一个完整的HTML页面,嵌入了script
标签,除了script
标签的内容之外,你无法控制它,因为你正在使用的CMS。
我强烈建议使用更灵活的CMS。
除非您可以这样做,否则您可以简单地将页面作为文本接收,然后提取JSON。把你的script
标签改成这样:
<script>
var JSONObject = /*XXX_JSONSTART_XXX*/{"groups":["1210103","1210103","1210103","1210405"],
"prices":["279,00","399,00","628,00","129,00"],
"titles":["","","",""]
}/*XXX_JSONEND_XXX*/;
</script>
注意标记。然后可以提取标记之间的JSON,并对其使用$.parseJSON
。例子:
(function($) {
$.ajax({
url: "http://jsbin.com/ecolok/1",
dataType: "text",
success: function(result) {
var startMarker = "/*XXX_JSONSTART_XXX*/";
var endMarker = "/*XXX_JSONEND_XXX*/";
var start, end;
start = result.indexOf(startMarker);
if (start === -1) {
display("Start marker missing");
}
else {
start += startMarker.length;
end = result.indexOf(endMarker, start);
if (end === -1) {
display("End marker missing");
}
else {
result = $.parseJSON(result.substring(start, end));
display("result.groups.length = " + result.groups.length);
display("result.prices.length = " + result.prices.length);
display("result.titles.length = " + result.titles.length);
}
}
}
});
function display(msg) {
$("<p>").html(String(msg)).appendTo(document.body);
}
})(jQuery);
Live Copy | Source
相关文章:
- 如何遍历包含对象的数组-javascript
- 保存数组javascript
- 查找数组javascript中包含的元素类型
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 从多维数组javascript中提取特定值
- 如何在数组javascript中选择伪随机值
- 拆分字符串数组(JavaScript)后未定义
- 从数组JavaScript中删除并返回最后n个项的最快方法
- 使用条件for循环更新数组-Javascript
- 从数组javascript创建新对象
- 用数组(javascript)中的值替换regex捕获
- 从数组[Javascript]的总长度中减去一个干净的数字
- 将一个字符串数组解析为一个新的数组javascript
- 如何将对象转换为对象数组javascript
- 赢得't循环数组javascript
- 从不同的数组 JavaScript 中获取值
- 多维数组 JAVASCRIPT 出了点问题
- 可以't分配给一个对象数组javascript
- 比较数组JavaScript中的对象
- 如何完成缺少(连续)元素的数组|Javascript