首页 > 解决方案 > 试图将 json obj 推送到 Javascript 中 json obj 的值中

问题描述

我正在尝试将 json obj 推送到 json obj 的值中。

dl = []

payload = {
  "table": ["ric-908a-dffb9c3aaac3"],
  "filter": {},
  "aggregations": {
    "cp_counts": {
      "terms": {
        "field": "cp.raw"
      }
    }
  }
}

if (dl.length == 0) {
  filterAll = {
    "type": "exists",
    "exists": {
      "field": "c_fam.raw"
    }
  }
  payload.filter.push(filterAll)
}

我希望返回看起来像这样:

{
  "table": ["ric-908a-dffb9c3aaac3"],
  "filter": {
    "type": "exists",
    "exists": {
      "field": "c_fam.raw"
    }
  },
  "aggregations": {
    "cp_counts": {
      "terms": {
        "field": "cp.raw"
      }
    }
  }
}

我不断收到:错误:payload.filter.push 不是函数。我不确定为什么会这样

标签: javascriptjson

解决方案


上面代码的问题是 push() 是针对 javascript 数组,但 filter 是一个对象 {}。所以要解决你的问题,你应该这样做

payload.filter=filterAll

代替

payload.filter.push(filterAll)

推荐阅读