我试图从jquery ajax调用中获取一些特定数据,数据对象数组看起来像这样:
Object {Version: Object, Content: null, StatusCode: 200, ReasonPhrase: "OK", Headers: Array[1]…}
我感兴趣的具体部分是
Headers --> Object -->Key "FORCE_REDIRECT" ( FORCE_REDIRECT I wish to find and test if it exists)
然后我想用
Value --> 0 --> "Grid.html" (Grid.html is where i plan to redirect to)
chrome dev工具控制台,这就是数组的样子
console.log(data); // shows me the array
console.log(data.Key); //undefined
console.log(data[0].Key); // blows up
答案 0 :(得分:1)
您在尝试访问Headers
对象时错过了某个属性(data
):
console.log(data);
console.log(data.Headers[0].Key); //"FORCE_REDIRECT"
console.log(data.Headers[0].Value[0]); //"Grid.html"
答案 1 :(得分:1)
让我们更加谨慎,因此您的代码无法爆炸。
首先,您可以使用正确的密钥过滤if(!data.Headers){
//fail
return;
}
var headers = data.Headers.filter(function(o){return o.Key && o.Key==="FORCE_REDIRECT";});
数组以仅包含 对象:
var headerObj = headers[0];
拿第一个:
if(headerObj) //if it exists...
{
var aValue = headerObj.Value[0]; //take the first value
if(aValue) //if it exists...
{
doSomethingWith(aValue);
}
}
确保它不为空:
public static readonly DependencyProperty ASLSelectedItemsProperty = DependencyProperty.Register("ASLSelectedItems", typeof(ObservableCollection<object>), typeof(MultiSelectionComboBox), new PropertyMetadata(null, OnSelectedItemsChanged));