如何只从JSON中获取对象,而不从字符串中获取?

wvyml7n5  于 2023-02-10  发布在  其他
关注(0)|答案(2)|浏览(96)

我有一个JSON,我想循环遍历它,但是当我循环遍历它的时候,由于字符串的原因,循环失败了,我该如何循环遍历JSON中的对象呢?
我只想遍历JSON中的对象。

  • 我尝试了if(json.length!=3),但在命中对象时失败,因为我认为它找不到对象的长度
  • 我还尝试了json.hasOwnProperty("field_id"),当我点击字符串“and”时,它也失败了
  • 我还尝试了if(json.length=undefined),但也失败了,因为长度本身进入了未定义状态

下面是我的JSON:

[
    {
        "field_id": 122,
        "operator_id": "1",
        "where_flag": true
    "and",
    {
        "field_id": 128,
        "operator_id": "0",
        "where_flag": true
    },
    "and",
    {
        "field_id": 148,
        "operator_id": "1",
        "where_flag": true
    }
]
62lalag4

62lalag41#

我建议先过滤项目,然后循环遍历对象:

function isObject(value) {
  return typeof value === "object" && value !== null
}

array.filter(item => isObject(item)).forEach(...)

或者只是将它们压缩在一个循环中(我通常不推荐这样做):

array.forEach(item => {
  if(!isObject(item)) return;

  ...
})
yiytaume

yiytaume2#

也许这会有用

let array = [
    {
        "field_id": 122,
        "operator_id": "1",
        "where_flag": true
    },
    "and",
    {
        "field_id": 128,
        "operator_id": "0",
        "where_flag": true
    },
    "and",
    {
        "field_id": 148,
        "operator_id": "1",
        "where_flag": true
    }
]

array.forEach((elem)=>{
    if(typeof(elem)=="object"){
        console.log(elem)
    }
})

相关问题