美文网首页unitycsharpUnity3D 成神之路
利用VisualStudio将Json转C#实体类,给你2套方案

利用VisualStudio将Json转C#实体类,给你2套方案

作者: 雨落随风 | 来源:发表于2018-10-15 01:39 被阅读196次

    在本文,笔者将教大家如何使用vs将 json 转为c#实体类:

    方案一:

    在vs2013版本开始,vs原生支持将json转C#实体类。
    使用方法:

    1. 新建一个空脚本
    2. 复制json文本到剪切板
    3. 依次点击编辑→选择性粘贴→将 Json 粘贴为类

    Tips:

    1. vs这个功能貌似不支持Dictionary,所以明明可以用字典很好表示的 json 结构他会用类来解析,继而出现很多诡异的类,譬如:


      类名为数字
      如果用字典来解析就简单的多
    2. vs整出的这些个类,由于没有加 [System.Serializable] 属性,所以使用 JsonUtility.FromJson API 解析前要自己添加上以上的属性,否则报对象为空。
    3. 鉴于上一条,建议使用 Newtonsoft.Josn.JsonConvert.DeserializeObject,反正很美味。

    方案二:

    这个方案需要为vs引入一个名为:“Paste Json as Code-quicktype” 的插件,在json 处理方面,这个插件也是相当有诚意的。


    使用方法:

    1. 新建一个空的.cs脚本
    2. 复制 json 文本到剪切板
    3. 依次点击编辑→Paste Json as Code,嗯!简单暴力

    Tips:

    1. 就在刚刚,发现腾讯电脑管家居然把这个插件里面的核心文件认定为病毒,“管家,你打扰我敲代码了”。
    2. 这个插件整出的类喜欢用枚举,不想要枚举的自己稍微改改。
    3. 这个插件在处理上面那个问题时就显得很智能了,引入字典:


    4. 对汉字支持貌似NG了,明明是“颜值”二字却给我整出个这个字符串 “棰滃€?”。
    5. Json 序列化和反序列均基于Newtonsoft.Json。
    6. 语法糖使用c# 4.6 及以上版本

    动画演示:

    QuickType.io 提供

    扩展阅读:

    quicktype.io
    Paste JSON as Code - quicktype - Visual Studio Marketplace
    vs开发者博客早在2012就写好了的“粘贴 Json 为类”的教程
    可能你需要VS2017 的选择性粘贴为什么没有“将XML粘贴为类”选项-CSDN论坛

    总结:

    vs 原生支持的 json 转实体类很强大,如果json 结构合理或者不复杂的话,使用它得到的c#实体类还是非常值得信赖的。
    QuickType.io 提供的功能则更显其专业性和智能性,值得一试!
    PS:使用 斗鱼API 同步测试了 Bejson ,也是有些不正确的地方。

    这个icdata数据(数据截图在上面) 很默契的让bejson也翻车了

    写到最后:

    如果没有工程试手,试试这个:https://github.com/Bian-Sh/JsonUsingInUnity
    啥环境都有了,demo也整了俩:

    我知道,从斗鱼拿来的json更加喜闻乐见,嘿嘿

    相关文章

      网友评论

      本文标题:利用VisualStudio将Json转C#实体类,给你2套方案

      本文链接:https://www.haomeiwen.com/subject/zjmtzftx.html