Excel 表格数据转 JSON 字符串、JSON 字符串快速生成 C# 实体类

有时候我们需要从 Excel 表格中将整理好的数据,转换成我们需要的 JSON 字符串,以便读取数据,如何实现呢 ?

这里推荐一个在线 JSON 校验格式化工具的网站 : BeJSON,里面涵盖了几乎和 Json 相关的所有功能。

接下来进入博客正文。

一:Excel 表格数据转 JSON 字符串

以我经常玩的游戏《英雄联盟》为例,将整理好的英雄技能整理成一张表格。如下图所示
在这里插入图片描述
操作步骤
选中表格内容并复制,在 BeJSON 网站选择【JSON】,然后选择【Excel 转 Json】,将复制的内容粘贴到文本框中,最后点击【转换】按钮,就可以将 Excel 表格数据转 JSON 字符串。动态效果演示图如下
在这里插入图片描述
有一点需要注意下,复制后的内容会在最后会自动换行,需要将光标定位到下图所示位置,否测在转换后的 Json 数据中最后会多一个逗号,这是不符合 Json 语法格式的。在这里插入图片描述

二:JSON 快速生成 C# 实体类

第一步
复制转换后的 Json 数据,选择【JSON】,然后选择【JSON 在线编辑器】,删掉一些不需要的地方,动态效果演示图如下
在这里插入图片描述
在【JSON在线编辑器】页面,有两个按钮需要说明一下,如下图所示
在这里插入图片描述
左边的按钮是未压缩版,数据更直观,明了,但占用空间也会更大一点。
右边的按钮是压缩版,会压缩 JSON 数据,清除所有的空白字符,所以看着数据会杂乱无章,但占用空间会更小。

第二步
复制 JSON 数据,选择【后端】,点击【JSON 生产 C# 实体类】,粘贴数据到文本框,最后点击【生产实体类】,动态效果演示图如下
在这里插入图片描述
可以看到,JSON 已经快速生成了对应的 C# 实体类,复制生成的 C# 实体类到脚本即可,如下代码(修改后的)

/// <summary>
/// 英雄数据管理类
/// </summary>
public class HeroData
{
    // 英雄名称
    public string 名字 { get; set; }
    // 英雄职业
    public string 职业 { get; set; }
    // 英雄Q技能
    public string Q技能 { get; set; }
    // 英雄W技能
    public string W技能 { get; set; }
    // 英雄E技能
    public string E技能 { get; set; }
    // 英雄R技能
    public string R技能 { get; set; }
    // 英雄被动技能
    public string 被动技能 { get; set; }
}

public class Root
{
    public List<HeroData> HeroList { get; set; }
}

因为我 Excel 中写的是"Q 技能",中间有一个空格,生成的 C# 实体类中字段也是 public string Q 技能; 在 C# 中字段是不能含有空格的,这里我手动将字段中的空格去掉了,JSON 数据中的空格也要去掉。

最后需要特别说明的是(很多人都踩过的坑),如下图
在这里插入图片描述
JSON 数据中 A 位置的名称要保持与 C# 实体类中 B 位置的名称一样,否则会无法正确读取数据。

这里我将 C# 实体类中 B 位置名称改为 HeroList ,JSON 数据中 A 位置的名称不变,读取数据的时候将会报如下错误。
在这里插入图片描述
你将 JSON 数据中 A 位置名称 也改为 HeroList 后 ,再读取数据时就不会再报错了。

扫描二维码关注公众号,回复: 8958570 查看本文章

三:从 JSON 中读取数据

这里我新建一个 txt ,将 JSON 数据复制到该 txt 中,我们点击按钮获取第一位英雄的名称以及其 R 技能,代码如下

    void HeroData()
    {
        var jsonPath = "D:/Users/suxing/Desktop/Heros.txt";
        using (TextReader tr = File.OpenText(jsonPath))
        {
            var heroData = tr.ReadToEnd();
            var rootData = JsonMapper.ToObject<Root>(heroData);
            Debug.Log("名字:"+rootData.HeroList[0].名字+" R 技能:"+ rootData.HeroList[0].R技能);
            tr.Close();
        }
    }

动态效果演示图如下
在这里插入图片描述
ok,关于 Excel 表格数据转 JSON 字符串、JSON 字符串快速生成 C# 实体类 就说到这里。


结束语

如果这篇博客有幸帮到了您,欢迎点击下方链接,和更多志同道合的伙伴一起交流,一起进步。

Web开发者俱乐部
在这里插入图片描述

发布了187 篇原创文章 · 获赞 253 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_42351033/article/details/103539247
今日推荐