当前位置: 首页 > news >正文

数据归组工具

利用C#将数据
[
{"name":"A","fzh":1},
{"name":"A","fzh":2},
{"name":"A","fzh":3},
{"name":"B","fzh":4},
{"name":"B","fzh":5},
{"name":"C","fzh":6},
{"name":"D","fzh":7},
{"name":"D","fzh":8},
]
转换为:
[
{"name":"A","fzhs":[1,2,3]}
,{"name":"B","fzhs":[4,5]}
,{"name":"C","fzhs":[6]}
,{"name":"D","fzhs":[7,8]}
]

使用LINQ,可以将原始JSON数据转换为目标结构。下面是实现该转换的C#代码:

using System;
using System.Collections.Generic;
using System.Linq;

public class DataModel
{
    public string Name { get; set; }
    public int[] Fzhs { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        var jsonData = new[]
        {
            new { name = "A", fzh = 1 },
            new { name = "A", fzh = 2 },
            new { name = "A", fzh = 3 },
            new { name = "B", fzh = 4 },
            new { name = "B", fzh = 5 },
            new { name = "C", fzh = 6 },
            new { name = "D", fzh = 7 },
            new { name = "D", fzh = 8 }
        };

        var result = jsonData
            .GroupBy(x => x.name)
            .Select(g =>
                new DataModel
                {
                    Name = g.Key,
                    Fzhs = g.Select(x => x.fzh).ToArray()
                });

        foreach (var item in result)
        {
            Console.WriteLine($"{{\"name\":\"{item.Name}\", \"fzhs\":[{string.Join(",", item.Fzhs)}]}}");
        }
    }
}
 

在这个代码中,我们首先定义了一个DataModel类来表示目标JSON结构。然后,我们使用LINQ的GroupBy方法将原始JSON数据分组,根据每个分组的名称进行分组。接着,我们使用Select方法对每个分组应用一系列操作:

  • 将名称转换为字符串。
  • 使用另一系列Select操作,将fzh值转换为数组。

最终结果是原始JSON数据转换为目标结构的集合。

 

http://www.lryc.cn/news/448719.html

相关文章:

  • JavaScript 中的闭包的形成及使用场景
  • 后端返回内容有换行标识,前端如何识别换行
  • 服务器被挂马,导致网站首页被更改怎么解决
  • Android 利用OSMdroid开发GIS
  • 一文上手skywalking【上】
  • 【JavaScript】JQuery基础知识及应用
  • 初始爬虫9
  • 从细胞到临床:表观组学分析技术在精准医疗中的角色
  • 带你0到1之QT编程:二十、QT与MySQL喜结连理,构建数据库应用开发
  • 梯度下降法及其性能评估
  • 906. 超级回文数
  • 代码随想录算法训练营||二叉树
  • 线上报名小程序怎么做
  • 【测试岗】手撕代码 - 零钱兑换
  • 菱形继承的类对父类的初始化、组合、多态、多态的原理等的介绍
  • React Native 在 build 的时候如果出现 `babel.config.js` 配置文件的错误
  • 【Linux】包管理器、vim详解及简单配置
  • AVL树实现
  • 初始MYSQL数据库(6)—— 事务
  • 0基础学习PyTorch——GPU上训练和推理
  • 这款免费工具让你的电脑焕然一新,专业人士都在用
  • Java高级Day52-BasicDAO
  • 【OceanBase 诊断调优】—— SQL 诊断宝典
  • 微服务Redis解析部署使用全流程
  • C++之STL—常用排序算法
  • 【驱动】地平线X3派:备份与恢复SD卡镜像
  • 【C++报错已解决】std::ios_base::failure
  • matlab入门学习(四)多项式、符号函数、数据统计
  • leetcode621. 任务调度器
  • Spark 的 Skew Join 详解