Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确定JSON对象是否有属性,如果有,属性值是否大于0?_Javascript_Jquery - Fatal编程技术网

Javascript 如何确定JSON对象是否有属性,如果有,属性值是否大于0?

Javascript 如何确定JSON对象是否有属性,如果有,属性值是否大于0?,javascript,jquery,Javascript,Jquery,我从类似于以下内容的API返回了一些JSON: {"amount_to_collect":0,"breakdown":{"city_tax_collectable":0,"city_tax_rate":0,"city_taxable_amount":0,"combined_tax_rate":0,"county_tax_collectable":0,&quo

我从类似于以下内容的API返回了一些JSON:

{"amount_to_collect":0,"breakdown":{"city_tax_collectable":0,"city_tax_rate":0,"city_taxable_amount":0,"combined_tax_rate":0,"county_tax_collectable":0,"county_tax_rate":0,"county_taxable_amount":0,"line_items":[{"city_amount":0,"city_tax_rate":0,"city_taxable_amount":0,"combined_tax_rate":0,"county_amount":0,"county_tax_rate":0,"county_taxable_amount":0,"id":"1","special_district_amount":0,"special_district_taxable_amount":0,"special_tax_rate":0,"state_amount":0,"state_sales_tax_rate":0,"state_taxable_amount":0,"tax_collectable":0,"taxable_amount":0}],"special_district_tax_collectable":0,"special_district_taxable_amount":0,"special_tax_rate":0,"state_tax_collectable":0,"state_tax_rate":0,"state_taxable_amount":0,"tax_collectable":0,"taxable_amount":0}}
我需要检查“amount\u to\u collect”是否存在,如果存在,则检查该值是否大于0,包括任何美分,即0.01应大于0

我可以通过以下方式检查它是否存在:

if (data.hasOwnProperty("amount_to_collect"))
我可以检查它是否大于零

if(data.amount_to_collect == 0) {
    alert('zero');
} else if(data.amount_to_collect > 0) {
    alert('greater')
}

但无法找出如何检查它是否存在以及它是否存在的值是否大于零。在某些情况下,它可能不会被返回,我需要有一个这样的案例。

tax
在您的代码中只会包含
hasOwnProperty()
的布尔结果。由于示例中的对象只有
true
,因此您总能看到“更大”的输出

要解决此问题,需要将包含检查属性是否存在的结果的变量与属性本身的值分开。试试这个:

let数据={
“要收取的金额”:0
//其他属性。。。
}
var propertyExists=data.hasOwnProperty(“要收集的金额”);
如果(propertyExists&&data.amount\u to\u collect>0){
console.log(“更大”);
}否则{
console.log('less');

}
这真的很简单,只需阅读。。。您会发现,JSON对象只包含两个方法。请参阅更新的问题。”“金额”可以是0,可以大于零,或者在某些情况下甚至不存在于对象中。您的问题是“无法确定如何检查它是否存在并且大于零”-这回答了这个问题。