IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> C#对象转实体,C#实体转对象,Unity使用Json作为配置文件 -> 正文阅读

[游戏开发]C#对象转实体,C#实体转对象,Unity使用Json作为配置文件

核心代码

对象转json

string jsons = JsonConvert.SerializeObject(program.ammeterGameObjects_LIST);

json转对象

 string Json= FileManager.Instance.ReadFile(Application.streamingAssetsPath + "/" + 在streamingAssets下的路径,在streamingAssets下主要是发布之后也可以更改,无需再次发布也可以更改参数);
            
var listDevice = JsonConvert.DeserializeObject<List<DeviceGameObejct>>(Json);//  <> 中是需要转换的文件类型,小括号中是读取到的json的string,这就得到了对象的list,

C#对象转实体

  示例代码
  	//一个对象
    public class AmmeterGameObject
    {
        public MinuteInfo minuteInfo = new MinuteInfo();
        public int Mark;
        public string Name;
    }

     //对象所包含的部分属性
    public class MinuteInfo
    {
        public string Data;
        public int SlaveId;//1234,
        public ushort ParameterAddress;//40001 40002
        public Loaction loaction;
        public float Power = 16.5f;
        public string Unit = "kw/h";
        public float MAX = 0.0F;
        public float MIN = 0.0F;
    }
    
	//一个枚举的属性,枚举的本质上 int 类型。
    public enum Loaction
    {
        All = 1,
        Office,
        Warehosue,
        WorkA,
        WorkB,
    }

然后创建对应的对象,给予对象值

示例代码

//创建对象并将对象赋值
 private void MakeJson()
        {
            AmmeterGameObject ammeterGameObject1 = new AmmeterGameObject()
            {
                minuteInfo = new MinuteInfo()
                {
                    Data = " ",
                    SlaveId = 1,
                    ParameterAddress = 40001,
                    loaction = Loaction.All,
                    Power = 16.5f,

                },
                Mark = 1,
                Name = "小区",
            };
            AmmeterGameObject ammeterGameObject2 = new AmmeterGameObject()
            {
                minuteInfo = new MinuteInfo()
                {
                    Data = " ",
                    SlaveId = 1,
                    ParameterAddress = 40002,
                    loaction = Loaction.All,
                    Power = 16.5f,
                },
                Mark = 2,
                Name = "楼A",
            };
            AmmeterGameObject ammeterGameObject3 = new AmmeterGameObject()
            {
                minuteInfo = new MinuteInfo()
                {
                    Data = " ",
                    SlaveId = 1,
                    ParameterAddress = 40003,
                    loaction = Loaction.Warehosue,
                    Power = 16.5f,
                },
                Mark = 3,
                Name = "楼B",
            };
}

然后就将对象添加到一个对应类型的list中

 示例代码
	
private List<AmmeterGameObject> ammeterGameObjects_LIST = new List<AmmeterGameObject>();

   ammeterGameObjects_LIST.Add(ammeterGameObject1); 		
   ammeterGameObjects_LIST.Add(ammeterGameObject2);
   ammeterGameObjects_LIST.Add(ammeterGameObject3); 

然后转成Json

示例代码
string jsons = JsonConvert.SerializeObject(program.ammeterGameObjects_LIST);

这里需要引用一个DLL,如果是vs可以Alt+Enter来包,然后添加包中的命名空间就可以了,
以上就是对象转成Json

C#实体转对象

依旧使用上面的对象

            string Json= FileManager.Instance.ReadFile(Application.streamingAssetsPath + "/" + 在streamingAssets下的路径,在streamingAssets下主要是发布之后也可以更改,无需再次发布也可以更改参数);
            
            var listDevice = JsonConvert.DeserializeObject<List<DeviceGameObejct>>(Json);//  <> 中是需要转换的文件类型,小括号中是读取到的json的string,这就得到了对象的list,
          

注意到上面在对象转json的时候使用的是AmmeterGameObject 而到了实体转对象使用的是DeviceGameObejct ,这是不影响的,他会自己找到后他属性名称相同的属性赋值,至于不相同的会维持默认值。

不会的私信,

Enjoy !

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:50:06  更:2021-10-11 17:50:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 2:50:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码