Javascript JSON获取第一个索引名
我试图从JSON对象中检测第一个索引名,这些数据来自API 如果成功数据将返回如下内容:Javascript JSON获取第一个索引名,javascript,json,Javascript,Json,我试图从JSON对象中检测第一个索引名,这些数据来自API 如果成功数据将返回如下内容: var setRecharge = [{"data":{"transaction_id":"502014","tr_time":"2013-06-18 15:34:46","tr_channel":"WEB","opening_balance_a":"1000.00","closing_balance_a":"990.00"}}]; 如果失败,它将返回: var setRecharge = [{"erro
var setRecharge = [{"data":{"transaction_id":"502014","tr_time":"2013-06-18 15:34:46","tr_channel":"WEB","opening_balance_a":"1000.00","closing_balance_a":"990.00"}}];
如果失败,它将返回:
var setRecharge = [{"error":{"code":"AccountA","message":"Problem with A account: Password is not correct"}}];
因此,从这里我需要知道第一个索引是data
或error
,这样我就可以继续wil if else语句了
我试图引用这个主题,但不确定为什么它不起作用,我的数据也有括号和块 直接检查属性
if(setRecharge[0].error!=null)//stuff for error
else //stuff for data
您可以检查是否存在
error
,而不是检查元素的名称:
if(setRecharge[0].hasOwnProperty("error")) {
//you have an error - deal with it
}
else if(setRecharge[0].hasOwnProperty("data")) {
//you have your data - deal with it
}
else {
//something went wrong - you got neither
}
我建议只检查对象是否有
error
属性,然后处理它。这是一个比检查第一个属性的名称更干净的解决方案。如果属性的顺序发生变化怎么办
以下内容应满足您的需要:
if(setRechargeRate[0].hasOwnProperty('error'))
{
// Handle the error here...
}
为什么不检查是否存在
错误
?比评估它在对象中的物理位置要干净得多……您需要解析JSON,然后您可以作为标准数组访问对象。您永远不应该依赖对象属性键定位,因为它们在ecma规范中根本不受保证。如果您得到以下信息:[{error:0}]
?-您将在警报中显示数据,这是错误的。感谢您指出hasOwnProperty
并与我讨论,它似乎受支持,并且在旧浏览器中存在问题,但只有DOM元素(不从对象继承)没有问题,很高兴我能提供帮助。