栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

C#对象转实体,C#实体转对象,Unity使用Json作为配置文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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>(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 ammeterGameObjects_LIST = new List();

   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>(Json);//  <> 中是需要转换的文件类型,小括号中是读取到的json的string,这就得到了对象的list,
          

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

不会的私信, Enjoy !
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/310210.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号