将JSON中的空列表与空列表进行比较

时间:2019-03-28 17:39:44

标签: javascript node.js json

我正在尝试检查JavaScript中的json值是否为空列表。 我显然尝试了json.bundleProductSummaries!= []。这行不通,但是行得通:

JSON.stringify(json.bundleProductSummaries) != JSON.stringify([])

我的json:

  {
    "bundleProductSummaries": [

    ]
  }

我的代码:

fs = require('fs')
body = fs.readFileSync('./json.txt',{encoding : 'utf-8'})
// ---- Parsing de body ----
let json = JSON.parse(body);
let colored = null;

if(json.bundleProductSummaries != []){
    json = json.bundleProductSummaries[0];
}

感谢您将来的回答! Syndorik

2 个答案:

答案 0 :(得分:5)

您需要检查长度

json.bundleProductSummaries.length === 0

因为在JS中

console.log([] === [] )

,因为它们是两个不同的内存引用。

  

但是当两个数组的计算结果为true时?

当您要比较的两个值都具有相同的引用时

let a = []

console.log(a === a)

答案 1 :(得分:2)

您可以检查数组的length来检查其是否为空

let obj = {
    "bundleProductSummaries": []
}
console.log(obj.bundleProductSummaries.length === 0)

在这种情况下,您不需要比较,因为您正在if语句中使用它,而0本身就是一个虚假的值。

let obj = {
   "bundleProductSummaries": []
}
if(!obj.bundleProductSummaries.length){
  console.log("Array is empty")
}