C#无需第三方插件实现json和table互转

Unity游戏配置管理新思路:Luban插件实现Excel到Json自动化流程 在游戏开发中,配置管理是连接策划与程序的关键桥梁,其核心在于实现数据的结构化定义、高效转换与安全使用。传统基于Excel手动导出Json的方式,常面临类型校验缺失、数据结构维护困难、协作易错等痛点。通过引入配置编译与代码生成技术,可以构建一套从数据源到运行时的自动化流水线,确保数据强类型安全,并支持复杂关系与约束校验。这种工程化实践能显著提升开发效率与数据可靠性,尤其适用于需要管理大量配置表的项目。本文以Unity引擎为例,结合Luban工具,详细解析如何将Excel配置通过自动化流程转换为强类型C#代码与 阅读详情

C# 数据库查询结果table转化为json字符串,或反向把json字符串转换为DataTable数据集合 以下代码经实践简单可用。


转换通用类定义:

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using System.Data;
using System.Reflection;

namespace testcsoft
{

    public static class jsonObject
     {
     #region DataTable 转换为Json 字符串
    /// <summary>
    /// DataTable 对象 转换为Json 字符串
    /// </summary>
    /// <param name="dt"></param>
    /// <returns></returns>
    public static string ToJson(this DataTable dt)
    {
        JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
        javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
        ArrayList arrayList = new ArrayList();
        foreach (DataRow dataRow in dt.Rows)
        {
            Dictionary<string, object> dictionary = new Dictionary<string, object>();  //实例化一个参数集合
            foreach (DataColumn dataColumn in dt.Columns)
            {
                dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToString());
            }
            arrayList.Add(dictionary); //ArrayList集合中添加键值
        }
         return javaScriptSerializer.Serialize(arrayList);  //返回一个json字符串
    }
    #endregion     

    #region Json 字符串 转换为 DataTable数据集合
    /// <summary>
    /// Json 字符串 转换为 DataTable数据集合
    /// </summary>
    /// <param name="json"></param>
    /// <returns></returns>
    public static DataTable ToDataTable(this string json)
    {
        DataTable dataTable = new DataTable();  //实例化
        DataTable result;
        try
        {
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
            ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
            if (arrayList.Count > 0)
            {
                foreach (Dictionary<string, object> dictionary in arrayList)
                {
                    if (dictionary.Keys.Count<string>() == 0)
                    {
                        result = dataTable;
                        return result;
                    }
                    if (dataTable.Columns.Count == 0)
                    {
                        foreach (string current in dictionary.Keys)
                        {
                            dataTable.Columns.Add(current, dictionary[current].GetType());
                        }
                    }
                    DataRow dataRow = dataTable.NewRow();
                    foreach (string current in dictionary.Keys)
                    {
                        dataRow[current] = dictionary[current];
                    }
 
                    dataTable.Rows.Add(dataRow); //循环添加行到DataTable中
                }
            }
        }
        catch
        {
        }
        result = dataTable;
        return result;
    }
    #endregion
     
     }

}


使用方法:

DataTable -->  json :

string  json = jsonObject.ToJson(ds.Tables[0]);     

 // 其中  ds.Tables[0]  是数据库查询的表


  json -->  DataTable :

DataTable dt = jsonObject.ToDataTable(json);


这是测试从数据库获取数据并table和json互转结果


Wijmo 日历插件 说明:   因为项目(OA)的需要,我负责开发日程的模块,相信大家用过谷歌的日历了吧,是不是觉得挺好用,但又苦于无法实现?   这里告诉你一个很好的插件,Wijmo,而里面有一个类似谷歌的日历事件插件,真的很好很强大,注意,我不是托。   当时找到这个插件的时候,真心佩服那些牛逼的外国开发员,能做到这么厉害,并且还开源了。   因为菜鸟,苦苦做了一个多星期才完成,个中原因能 阅读详情

相关推荐

MySQL基础教程:JSON数据类型和函数

作者:禅与计算机程序设计艺术 1.背景介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它可以用来表示各种复杂的数据结构,尤其适用于Web应用程序的后端接口与前端的交互。在之前的MySQL版本中,没有直接支持JSON数据类型的存储,所以需要使用自定义

AI天才研究院 898

c#Json转换DataTable

c#Json转换DataTable

奋斗的小杨i的博客 2030

C#将json格式转换成DataTable实例

本文档用于将json格式字符串装换成DataTable,是一个非常常用的功能,如果自己需要可以将它封装成一个方法来使用,拿来和大家共同分享!

C#实现json多表文件交互,增删改查

前言C#窗体应用操作json有json格式为:"key":"", //json标识符,可以理解为控件Name"value":"", //控件的Text名称"size":9, //控件大小"formName":"" //控件属于哪一个窗体},"key":"","size":9,"key":"","size":9,...现在需要将三份不同的json文件,根据key与formName实现增删改查等等,代码过长,截取片段思路。

m0_54551727的博客 1187

机械臂视觉抓取避坑指南:如何正确计算手眼标定矩阵(附Numpy代码)

本文详细解析了机械臂视觉抓取中手眼标定矩阵的计算方法,特别针对'眼在手上'配置下的常见错误提供了解决方案。通过Numpy代码示例和坐标转换原理,帮助开发者避免矩阵计算错误和坐标转换偏差,提升工业自动化系统的精度和效率。

weixin_29081703的博客 243

STM32CubeIDE串口打印浮点数踩坑实录:5分钟搞定printf输出小数(附完整配置截图)

本文针对STM32CubeIDE中串口无法打印浮点数的常见问题,提供了详细的解决方案。核心在于通过添加“-u _printf_float”链接器参数,启用标准库的浮点数格式化支持。文章附有完整的配置截图和步骤,并提供了系统性的排查清单,帮助开发者快速解决printf输出小数的问题。

weixin_29163797的博客 343

C#底层库--JSON使用教程_详细(序列化、反序列化、转DataTable)

JSON帮助类,序列化、反序列化扩展类。包含:对象序列化成JSON字符串、JSON字符串序列化成对象、JSON字符串序列化成集合、JSON字符串序列化成DataTable等等。 用途:用于数据对象,通信传输,json已经取代了xml、键值对,成为主流数据传输格式。

花北城的博客 2113

VS2019+EasyX图形库实战:手把手教你用C语言打造消消乐小游戏(附完整源码)

本文详细介绍了如何使用VS2019和EasyX图形库从零开始构建一个C语言消消乐小游戏。通过环境配置、数据结构设计、界面绘制、交互实现到游戏逻辑完善的完整流程,帮助开发者掌握图形编程和游戏开发的核心技巧,并附有完整源码供参考。

bush的博客 186

C#Json转DataTable

C#Json转DataTable 需求:有一个log文件,需要整理成Excel,日志文件里面的数据都是json字符串 思路是,把Json字符串转换成DataTable,然后导出到Excel 在网上找了一些资料,整理了以下三种类型的Json 一、Json转换DataTable 1.处理简单Json: [{"mac":"20:f1:7c:c5:cd:80","rssi":"-86","ch":"9"},{"mac":"20:f1:7c:c5:cd:85","rssi":"-91","ch":"9"

fangyuan621的专栏 5198

从零配置到稳定运行:A4988步进电机驱动模块的实战避坑指南

本文详细介绍了A4988步进电机驱动模块的配置与优化技巧,涵盖硬件连接、电流调节、微步设置及散热优化等关键环节。通过实战经验分享,帮助用户避开常见陷阱,实现步进电机的稳定运行,特别适合单片机开发者和3D打印机爱好者参考。

weixin_28452161的博客 166

【实验】Linux下完全卸载oracle单实例(亲身体验完整版)

停止oracle数据库服务 停止监听 卸载数据库实例 因为自己懒得再弄dbca图形化界面啥的,直接采用dbca静默删除数据库实例,命令如下 dbca -silent -deleteDatabase -sourcedb orclhq -sid orcl -sysDBAUserName orcl -sysDBAPassword zte [oracle@slave ~]$ dbca -silent ...

萝卜吃鱼914的博客 1945

C# 实现改造 GooFlow 流程图插件与数据库应用的结合

GooFlow 一个基于 Jquery/FontAwesome 的流程图/架构图画图插件,本文介绍的是基于JS的一个版本,能够适用于大部分支持H5的浏览器。通过创建画布,我们可以在其上通过工具栏绘制想要绘制的流程图/框/线等,本文将介绍通过改造后的 GooFlow 简化版本,结合数据库满足实际的开发需求。

初九之潜龙勿用 3277

【第一章】基于Simulink的控制器开发教程——目录

摘要:本文系统介绍了基于Simulink的控制器开发方法,涵盖PID、状态反馈、模型预测(MPC)、模糊控制、自适应控制等8类主流控制器。针对每种控制器,详细阐述了其基本原理、适用场景,并通过Simulink建模与仿真测试进行实践验证。文章采用"理论+实践"的结构,从算法设计到硬件实现全流程展开,为汽车、航空航天、工业控制等领域的控制器开发提供完整解决方案,最后通过应用对比与学习总结帮助读者掌握不同控制器的核心特性和应用场景。(149字)

熟悉MATLAB/fpga/RK3588/LABVIEW/protus/单片机/dsp/Multisim 387

C#中DataTable格式数据直接在Html中以table格式展示(包含excel的header的样式实现)

在平常Web开发过程中会经常遇到将DataTable格式的数据在Html中显示而写着重复的代码,本文将依赖juery中DataTable插件来实现C#中DataTable格式数据直接在Html中显示而无需依赖其它组件: 如下是对juery中DataTable封装的js代码: (function ($) { var defaults = { isExcelHea...

weixin_43663915的博客 1835

matlab 点云泊松盘采样

本文介绍了泊松盘采样算法在三维点云处理中的应用。该算法通过最小间距约束(任意两点距离≥r)和均匀分布特性,生成高质量、均匀分布的点集。文章详细阐述了参数设置(如采样半径、候选点数),并与体素栅格、随机采样等方法进行了对比。代码实现部分展示了MATLAB版本的泊松盘采样算法,包括KD树加速和候选点生成机制。实验结果表明,该方法能有效保持点云特征,适用于点云简化、曲面重建等场景。文中还提供了参数调整建议和不同应用场景下的使用指导。

点云侠的博客 537

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

webapi用boostrap table控件(数据转换成json对象)

首先贴个效果图 js端代码: 这个是通用代码,然后要知道的是,它接收数据格式,很难转换 $(function () { var oTable = new TableInit(); oTable.Init(); }) var TableInit = function () { var oTableInit = new Object(); //初始化Tab...

图纸的博客 686

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

HTML Table to Json

HTML表格输出JSON <table class="table table-striped table-bordered table-hover dataTable no-footer" id="boltAreaDetailType" role="grid" aria-describedby="sample_2_info"> ...

weixin_30663471的博客 201

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

用Jquery和JTemplates来处理JSON数据

    收到我将被调往新公司专职开发B2C系统的内幕消息,在这个公司做了两年多时间,我开发的行情也改了几个版本。但一直面临大流量和被盗两大困惑。在即将调离之前,我想再做最后一次综合性的修改吧。    要想减小流量,首先就改变数据传输方式,以前是带格式的HTML文件,HTML带有头文件,还有数据表示格式的代码,这些数据加大了不必要的流量,于是我想到了JSON数据格式,这是一种非常轻巧的数据格式,

老鹰的专栏 6458

.net 将html写成的table 转换成excel_【工具】Excel 表格数据转换成Json格式的实用工具 excel2json...

介绍excel2json工具是用C# 语言开发的能够把 Excel 表转换成 json 的工具主要功能:支持读取 Excel 97-2003的 .xls格式和2007的 .xlsx格式;支持多个表单导出;把Excel表单转换成Json对象,并保存到一个文本文件中。支持将表中内容转换成Array,或者以第一列为ID的字典对象;支持GUI模式和命令行模式GUI模式方便预览;而命令行式,方便将...

weixin_39911056的博客 204

BootStrap table 实现表格行拖拽,并将排序结果保存到数据库

不上图了首先还是得添加三个文件,自己上网搜搜就行 前台,加在Bootstrap Table 属性里面  //当选中行,拖拽时的哪行数据,并且可以获取这行数据的上一行数据和下一行数据 onReorderRowsDrag: function(table, row) { //取索引号 dragbeforeidx =

GitLuckyd的博客 9906

C# + MVC + BootStrap Table 简单封装

前言: 1、Bootstrap本身是一个非常优秀的前端框架,bootstrap table 是其配套风格的表格插件,功能强大。 2、网上有非常多的 bootstrap table 的说明和教程,中文官网地址:       http://bootstrap-table.wenzhixin.net.cn/zh-cn/ 3、其配置参数非常的丰富,基本可以满足平时开发的一般需求,下面是文档地址...

Tomato2313的博客 6128
上一篇: extjs6 desktop 桌面多主题切换
下一篇: mssql数据迁移到mysql
领尚
博客等级 码龄14年 1143粉丝 271原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值