登录
首页 >  文章 >  前端

如何将动态 JSON 字符串解析为键值对映射,以存储不同统计类型下的数据?

时间:2024-11-04 09:40:07 239浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《如何将动态 JSON 字符串解析为键值对映射,以存储不同统计类型下的数据?》,这篇文章主要讲到等等知识,如果你对文章相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

如何将动态 JSON 字符串解析为键值对映射,以存储不同统计类型下的数据?

解析动态 json 字符串为键值对映射

给定一个 json 字符串,我们需要将其解析为一个 javascript 对象,并以键值对映射的形式存储字段值。

问题重述

如何将以下 json 字符串解析为一个可变 stattype 映射?

[
  {
    "name": "2015年",
    "stattotal": [
      {
        "total": "123",
        "stattype": "事件等级"
      },
      {
        "total": "456",
        "stattype": "行政区域"
      }
    ]
  },
  {
    "name": "2016年",
    "stattotal": [
      {
        "total": "789",
        "stattype": "事件等级"
      },
      {
        "total": "110",
        "stattype": "行政区域"
      }
    ]
  },
  {
    "name": "2017年",
    "stattotal": [
      {
        "total": "128",
        "stattype": "事件等级"
      },
      {
        "total": "654",
        "stattype": "行政区域"
      }
    ]
  }
]

解答

const data = JSON.parse(jsonString);
const map = new Map();

// 按年份迭代
for (let year of data) {
  // 按统计类型迭代
  for (let stat of year.statTotal) {
    // 如果映射中不存在该统计类型
    if (!map.has(stat.statType)) {
      // 创建一个类型数组并添加到映射中
      map.set(stat.statType, []);
    }

    // 将年的总数添加到该类型数组中
    map.get(stat.statType).push(stat.total);
  }
}

结果

执行上面的代码后,map 将包含以下键值对:

  • "事件等级": ["123", "789", "128"]
  • "行政区域": ["456", "110", "654"]

今天关于《如何将动态 JSON 字符串解析为键值对映射,以存储不同统计类型下的数据?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>