You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js中过滤出rulescore>0的JSON数据?

解决Node.js中过滤JSON规则数据的问题

嘿,这事儿超简单!我来给你一步步实现:咱们要处理你提供的JSON数据,只保留rules数组里rulescore > 0的规则项。

原始数据

先把你的原始JSON数据放出来,方便对照:

{
  "https://www.google.com": {
    "sitescore": 99,
    "rules": [
      { "rulename":"rule1","rulescore":0,"description":"rules1 descript"},
      { "rulename":"rule2","rulescore":1,"description":"rules2 descript"},
      { "rulename":"rule3","rulescore":0,"description":"rules3 descript"}
    ]
  }
}

Node.js处理代码

下面是具体的处理代码,不管你的数据是JSON字符串还是已经解析好的JS对象,都能搞定:

// 如果你的数据是JSON字符串,先解析成JavaScript对象
const jsonString = `{
  "https://www.google.com": {
    "sitescore": 99,
    "rules": [
      { "rulename":"rule1","rulescore":0,"description":"rules1 descript"},
      { "rulename":"rule2","rulescore":1,"description":"rules2 descript"},
      { "rulename":"rule3","rulescore":0,"description":"rules3 descript"}
    ]
  }
}`;

// 解析JSON(如果已经是对象可以跳过这一步)
const siteData = JSON.parse(jsonString);

// 遍历所有站点(哪怕以后新增其他站点也能兼容)
for (const siteUrl in siteData) {
  // 用filter方法筛选出rulescore大于0的规则,替换原数组
  siteData[siteUrl].rules = siteData[siteUrl].rules.filter(rule => rule.rulescore > 0);
}

// 格式化输出处理后的结果
console.log(JSON.stringify(siteData, null, 2));

代码说明

  • 要是你的数据本来就是JS对象,直接跳过JSON.parse那一步就行。
  • for...in循环用来遍历所有站点,确保代码能处理多站点的情况。
  • 数组的filter方法是核心,它会返回一个新数组,只包含满足rulescore > 0的规则项,我们用这个新数组替换原来的rules数组。
  • 最后用JSON.stringify格式化输出,让结果更易读。

处理后的结果

运行代码后,你会得到这样的最终数据:

{
  "https://www.google.com": {
    "sitescore": 99,
    "rules": [
      {
        "rulename": "rule2",
        "rulescore": 1,
        "description": "rules2 descript"
      }
    ]
  }
}

内容的提问来源于stack exchange,提问作者Veda Vyas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:18:08