【问题标题】:How to check for first value in JSON object?如何检查 JSON 对象中的第一个值?
【发布时间】:2020-10-08 15:30:13
【问题描述】:

我从 API 获取返回的 json 并且需要检查第一个对象 - 它没有键/值 - 用于 jQuery ajax 成功函数。通常,返回 JSON 格式

{"type":"Return","FirstName":"test","LastName":"test"}

我可以这样检查

success: function(data){
        if(data.type == "Return"){
            //do stuff  
        } else {
            //failed
        }
}

我如何执行相同类型的检查,以查看该对象的值是“税”还是“错误”?

{"tax":{"order_total_amount":1099.0,"shipping":0.0}}

success: function(data){
    if(data[0] == "tax"){
        //do stuff
    } else {
        //failed
    }
}

不起作用。我做错了什么?

这里是整个数据对象。 成功:

{"tax":{"order_total_amount":1099.0,"shipping":0.0,"taxable_amount":0.0,"amount_to_collect":0.0,"rate":0.0,"has_nexus":true,"freight_taxable":false,"tax_source":"destination","jurisdictions":{"country":"US","state":"CO","county":"ADAMS","city":"THORNTON"},"breakdown":{"taxable_amount":0.0,"tax_collectable":0.0,"combined_tax_rate":0.0,"state_taxable_amount":0.0,"state_tax_rate":0.0,"state_tax_collectable":0.0,"county_taxable_amount":0.0,"county_tax_rate":0.0,"county_tax_collectable":0.0,"city_taxable_amount":0.0,"city_tax_rate":0.0,"city_tax_collectable":0.0,"special_district_taxable_amount":0.0,"special_tax_rate":0.0,"special_district_tax_collectable":0.0,"line_items":[{"id":"1","taxable_amount":0.0,"tax_collectable":0.0,"combined_tax_rate":0.0,"state_taxable_amount":0.0,"state_sales_tax_rate":0.0,"state_amount":0.0,"county_taxable_amount":0.0,"county_tax_rate":0.0,"county_amount":0.0,"city_taxable_amount":0.0,"city_tax_rate":0.0,"city_amount":0.0,"special_district_taxable_amount":0.0,"special_tax_rate":0.0,"special_district_amount":0.0}]}}}

错误:

{"error":"Bad Request","detail":"to_zip 55478 is not used within to_state AL","status":400}

【问题讨论】:

  • 这不是 function() 中明显的拼写错误吗?
  • 抱歉修复了

标签: jquery json ajax


【解决方案1】:

您可以使用Object.prototype.hasOwnProperty()。例如:

success: function(data) {
    if(data.hasOwnProperty("tax")) {
        //do stuff
    } else {
        //failed
    }
}

【讨论】:

  • 完美,谢谢。一个跟进,你会用什么来简单地检查它是否是这个对象的错误(不管错误值) {“error”:“Bad Request”,“detail”:“to_zip 55478 is not used within to_state AL”,状态“:400}
  • 好吧,我想你也可以这样做并检查data.hasOwnProperty("error")。所有这一切都假设您在同一个响应中有一个或另一个(并且永远不会同时出现)。
  • 我试过了,它只适用于第一种情况,不适用于 data.hasOwnProperty("error") - 没有显示警报
  • 您确定这是您之前评论中的整个data 对象吗?
  • 绝对可以。看看这个小提琴:jsfiddle.net/tajuh18e
猜你喜欢
  • 2017-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-16
  • 2011-05-16
  • 1970-01-01
  • 2018-03-08
相关资源
最近更新 更多