为了账号安全,请及时绑定邮箱和手机立即绑定

访问带有月份数字的嵌套 JSON

访问带有月份数字的嵌套 JSON

www说 2023-06-29 22:31:00
我有一个包含每月值的 json 文件。我需要访问这些。我无法存档此内容。也许我只是犯了一个错误。{"sales":  {    "total_sales":"999.99",    "totals":       {         "2020-10-01":             {               "sales":"9.99",             }       }  }}我怎样才能从第二个“销售”中获得 9.99 的价值?我使用JS来获取total_sales。这有效。为此我真的需要你的帮助。为了更清楚起见:JSON 文件是 Woocommerce 的原始文件。我用原来的API实现Json,需要每个月的销售额。我已经用 Object.keys 尝试过了,但它不起作用。我只得到 (2020-01-01) 名称,但没有得到嵌套值。
查看完整描述

1 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

因此,假设您有变量名为 salesReport 的数据,如下所示:


{

  "sales": {

    "totals": {

      "2015-01-18": {

        "sales": "-17.00",

      },

      "2015-01-21": {

        "sales": "597.10",

      },

      "2015-02-18": {

        "sales": "32.00",

      },

      "2015-03-12": {

        "sales": "22.00",

      },

    },

  }

}

然后,您希望访问每个日期的 sales.totals 数据,而无需知道关键详细信息。此外,如果您需要存储密钥(在本例中为日期)及其各自的值,那么您可以首先使用Object.entries将它们转换为条目,如以下代码所示:


const salesReportTotalsEntries = Object.entries(salesReport.sales.totals);

然后您可以使用以下命令访问每个日期的销售数据


salesReportTotalsEntries[0][1].sales

salesReportTotalsEntries[1][1].sales

最后一步是,您可以使用Array.reduce根据每个月的数据对每个总销售数据进行求和。这是完整的代码:


const salesReport = {

  "sales": {

    "totals": {

      "2015-01-18": {

        "sales": "-17.00",

      },

      "2015-01-21": {

        "sales": "597.10",

      },

      "2015-02-18": {

        "sales": "32.00",

      },

      "2015-03-12": {

        "sales": "22.00",

      },

    },

  }

};


const salesReportTotalsEntries = Object.entries(salesReport.sales.totals);

const salesReportTotalsByMonths = salesReportTotalsEntries.reduce((a, v) => {

  const currentMonth = v[0].split('-')[1];

  if (!a[currentMonth]) {

    a[currentMonth] = Number(v[1].sales);

    return a;

  }

  a[currentMonth] += Number(v[1].sales);

  return a;

}, {});


console.log(`Total Sales Report in January is ${salesReportTotalsByMonths['01']}`);

console.log(`Total Sales Report in February is ${salesReportTotalsByMonths['02']}`);


查看完整回答
反对 回复 2023-06-29
  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信