我有一个名为dropdown-language
的API,它返回的内容如下:
{
"res": [
{
"enabled": 0,
"flag": "gr"
},
{
"enabled": 1,
"flag": "us"
}
]
}
如何在页面加载时获取这两个元素并将它们存储在两个全局变量中,例如:
var one = { "enabled": 0 , "flag": "gr" }
var two = { "enabled": 1 , "flag": "us" }
这样我就可以在同一个html页面的其他部分使用了吗?这是我到目前为止所做的:
<script type="text/javascript">
$.ajax({
url: "dropdown-language",
success : function(data) {
obj = JSON.parse(data);
alert(obj);
},
async:false
});
</script>
答案 0 :(得分:0)
我还自由地稍微更新了脚本,并将您的响应添加到另一个设置中。
首先是解决方案:
$.getJSON( "dropdown-language", function( data ) { // use getJSON for JSON: http://api.jquery.com/jquery.getjson/
var response = data.res, // get 'res'
flags = []; // prepare an array for flags
/**
* BETTER
*/
response.forEach(function(element){ // loop through the response
flags[element.flag] = element.enabled // add to the flags array, like flag['gr'] = 0
});
/**
* KINDA WRONG
* Will work, but you probably don't want this
*/
var one = response[0],
two = response[1];
console.log(flags); // don't use alert, but display the object using console.log
}
&#39;更好&#39;解决方案是因为你的结果现在是动态的,如果明天你的JSON响应有更多的标志呢?
答案 1 :(得分:-2)
在ajax请求之前声明两个全局变量,并在成功回调中实例化它们
var one, two;
$.ajax({
url: "dropdown-language",
success: function (data) {
obj = JSON.parse(data);
alert(obj);
one = obj.res[0];
two = obj.res[1];
},
async: false
});
如果您可以拥有两种以上的语言,那么最好全局存储res
。