数据归组工具
利用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数据转换为目标结构的集合。
相关文章:
数据归组工具
利用C#将数据 [ {"name":"A","fzh":1}, {"name":"A","fzh":2}, {"name":"A","fzh":3}, {"name":"B","fzh":4}, {"name":"B",&…...
JavaScript 中的闭包的形成及使用场景
JavaScript 中的闭包 闭包(Closure) 是 JavaScript 中一个非常重要且独特的概念,它指的是 函数能够记住并访问其词法作用域内的变量,即使这个函数在其词法作用域之外执行。 通俗地说,闭包是 一个函数可以“记住”它在…...
后端返回内容有换行标识,前端如何识别换行
<br/>的话 用 v-html \n 可以用css样式 white-space: pre-wrap 后端返回结果 前端...
服务器被挂马,导致网站首页被更改怎么解决
当服务器被挂马并导致网站首页被篡改时,说明服务器或网站的安全性遭到破坏。为了修复并防止未来的攻击,你可以按照以下步骤进行操作: 1. 立即下线网站 目的:防止恶意软件进一步传播,保护用户数据和防止攻击者继续对网…...
Android 利用OSMdroid开发GIS
1、地址 Github地址:https://gitee.com/mirrors/osmdroid Git地址: GitCode - 全球开发者的开源社区,开源代码托管平台 Git下载包地址:Releases osmdroid/osmdroid GitHub 新建项目 osmdroid在线: (1)…...
一文上手skywalking【上】
一、skywalking预览 1.1 skywalking 概述 Apache SkyWalking, 适用于分布式系统的应用程序性能监控工具,专为微服务、云原生和基于容器的 (Kubernetes) 架构而设计。官方地址: https://skywalking.apache.org/ 适用于分布式系统的应用程…...
【JavaScript】JQuery基础知识及应用
一、JQuery的导入方法 https://editor.csdn.net/md/?articleId132214798 二、JQuery介绍 JQuery(JQ):JS的一个类库(方法库:包含了大量的、有助于项目开发的属性和方法) 第一代版本1.xx.xx: 1.11.3 兼容所有浏览器的࿰…...
初始爬虫9
1.元素定位后的操作 “find_element“仅仅能够获取元素,不能够直接获取其中的数据,如果需要获取数据需要使用以下方法”。下面列出了两个方法: 获取文本 element.text 通过定位获取的标签对象的 text 属性,获取文本内容 获取属性…...
从细胞到临床:表观组学分析技术在精准医疗中的角色
中国科学院等科研院所的顶尖人才发起,专注于多组学、互作组、生物医学等领域的研究与服务。在Nature等国际知名期刊发表多篇论文,提供实验整体打包、免费SCI论文润色等四大优势服务。在表观组学分析技术方面,提供DAP-seq、ATAC-seq、H3K4me3 …...
带你0到1之QT编程:二十、QT与MySQL喜结连理,构建数据库应用开发
此为QT编程的第二十谈!关注我,带你快速学习QT编程的学习路线! 每一篇的技术点都是很很重要!很重要!很重要!但不冗余! 我们通常采取总-分-总和生活化的讲解方式来阐述一个知识点! …...
梯度下降法及其性能评估
梯度下降法 梯度下降法是一种一阶迭代优化算法,用于寻找函数的局部最小值。在机器学习中,它通常用来最小化损失函数(也称为成本函数或误差函数),以提高模型对数据的拟合程度。梯度下降法的基本思想是沿着目标函数当前…...
906. 超级回文数
1. 题目 906. 超级回文数 2. 解题思路 题目意思很简单,在给定范围中找到所有满足,它本身是回文,且它的平方也是回文的数字个数。 这题需要注意题目给定的范围,后面很有用: 因为回文范围是有限的,那么我…...
代码随想录算法训练营||二叉树
前/中/后序遍历 递归方式 参考文章 题目 思路:其实递归方式的前中后序遍历的方式都差不多,区别是在父节点的遍历时间。 前序代码 class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result new…...
线上报名小程序怎么做
在这个数字化、智能化的时代,信息技术的发展正以前所未有的速度改变着我们的生活。无论是学习、工作还是娱乐,互联网都成为了我们不可或缺的一部分。而在线上报名这一领域,小程序的出现更是为广大用户带来了前所未有的便捷与高效。今天&#…...
【测试岗】手撕代码 - 零钱兑换
322. 零钱兑换 题目描述 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种…...
菱形继承的类对父类的初始化、组合、多态、多态的原理等的介绍
文章目录 前言一、菱形继承的类对父类的初始化二、组合三、 多态1. 构成多态2. 虚函数3. 虚函数的重写4. 虚函数重写的两个例外1. 协变2. 析构函数的重写 5. C11 final 和 override1. final2. override 6. 设计不想被继承的类7. 重载、覆盖(重写)、 隐藏…...
React Native 在 build 的时候如果出现 `babel.config.js` 配置文件的错误
React Native 在 build 的时候如果出现以下错误, 就是 babel.config.js 配置文件的错误. Showing Recent Issues node:internal/process/promises:289triggerUncaughtException(err, true /* fromPromise */);^Error: .plugins[0][1] must be an object, false, or undefineda…...
【Linux】包管理器、vim详解及简单配置
🚀个人主页:小羊 🚀所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言一、包管理器1.1 apt1.2 yum 二、Linux编辑器——vim2.1 vim的三种模式2.2 vim普通模式常用命令2.2.1 移动…...
AVL树实现
1.AVL的概念 1.AVL树属于二叉搜索树的一种,但它不同与普通的二叉搜索树还具有以下的性质: 每一个根的左右子树的高度差的绝对值不超过1。AVL树是通过高度差去控制平衡的,所以又称作为平衡二叉搜索树。 2.AVL树实现我们引入了一个平衡因子的概…...
初始MYSQL数据库(6)—— 事务
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: MYSQL 目录 事务的概念 事务的ACID特性 使用事务 查看支持事务的存储引擎 事务的语法 保存点 自动/手动提交事务 事务的隔离性和…...
3步解锁显卡潜力:OptiScaler跨平台开源上采样技术配置攻略
3步解锁显卡潜力:OptiScaler跨平台开源上采样技术配置攻略 【免费下载链接】OptiScaler OptiScaler bridges upscaling/frame gen across GPUs. Supports DLSS2/XeSS/FSR2 inputs, replaces native upscalers, enables FSR3 FG on non-FG titles. Supports Nukem mo…...
2026年黄山钢筋网片供应厂家揭秘
在建筑行业蓬勃发展的今天,钢筋网片作为建筑施工中不可或缺的材料,其质量和供应厂家的选择至关重要。对于黄山地区的建筑项目来说,找到一家靠谱的钢筋网片供应厂家,是保障工程质量和进度的关键。今天,我们就来揭秘一家…...
别死记硬背了!一张图带你理清编译原理‘语法制导翻译’到‘代码优化’的核心链路
编译原理核心链路解析:从语法制导翻译到代码优化的实战指南 编译原理作为计算机科学的重要基石,常常让学习者感到知识点零散、难以形成系统认知。本文将以赋值语句为例,通过清晰的逻辑链路,展示从源代码到优化代码的完整编译过程&…...
ostringstream清空缓存的正确姿势:str()与clear()的深度解析
1. 为什么ostringstream清空缓存这么让人困惑? 第一次用ostringstream的时候,我也被它坑过。记得当时写了个日志记录功能,反复往同一个ostringstream对象里写入内容,结果发现每次输出的日志都越积越长。我本能地调用了clear()&…...
ai辅助c++开发:让快马成为你的codeblocks智能编程助手与算法导师
AI辅助C开发:让快马成为你的CodeBlocks智能编程助手与算法导师 最近在用CodeBlocks开发一个C图形化应用时,遇到了一个典型问题:需要实现非递归快速排序算法并测试性能。传统开发方式可能需要反复查阅文档、调试代码,但借助InsCod…...
智能车越野组硬件拆解:我们如何用CYT4BB7核心板与四硅麦矩阵搞定声音信标定位?
智能车越野组硬件拆解:四硅麦矩阵与CYT4BB7核心板的声学定位实战 全国大学生智能车竞赛越野组的硬件设计,本质上是一场关于精度、效率和可靠性的极限挑战。当其他队伍还在为三硅麦方案的布线发愁时,我们已经用四硅麦矩阵将声音信标定位误差控…...
OpenCore Legacy Patcher:让旧Mac重获新生的终极指南
OpenCore Legacy Patcher:让旧Mac重获新生的终极指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher是一款革命性的开源…...
hgproxy4.0.35.0之前版本数据库连接卡在parse状态
文章目录环境症状问题原因解决方案环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5.10 症状 查询数据库后台连接进程,发现主备节点均有超过几天的长连接,且状态卡在parse状态 问题原因 数据库会话sql出错后…...
基于STM32H743的调试记录2——从CubeMX到MDK:构建现代化工程模板的实战指南
1. 为什么需要现代化工程模板 最近在折腾STM32H743的时候,发现一个很有意思的现象:很多开发者还在使用几年前的老旧工程模板。我自己刚开始用某原子的开发板学习时也踩过这个坑,板子配套的例程跑起来没问题,但一旦想实现些复杂功…...
AI教材写作新趋势,低查重助力高效教材编写!
编写痛点与AI解法 整理教材的知识点简直就是一项“精细的工作”,其难点在于如何保持平衡与衔接性!要么令人担忧的是核心知识点的遗漏,要么把握不好难度的层次——小学教材往往深奥,让学生难以理解;高中教材却又过于浅…...
