Protobuf篇:Proto和Json的灵活互转

Proto对于Json的支持很好,今天我就给大家展示一下Proto和Json的互相转化(不需要额外的第三方插件

学习准备

使用Protobuf实现游戏存读档的完整流程(一:配置环境)

使用Protobuf实现游戏存读档的完整流程(二:具体项目实战)

因为这篇文章是基于以上两篇博文进行的,所以需要看一下,当然了,我在代码里会注释相关功能介绍,尽量让代码易于理解,如果对Protobuf比较熟悉的大神可以不看上面两篇文章

正文

写明json文件路径

        /// 
        /// Json文件的储存路径
        /// 
        public static readonly string m_JsonPath =
            Application.dataPath + "file1.json";

在Read函数里增加

            //以下是(新增)互转部分
            
            //如果不存在就新建
            if (!File.Exists(m_JsonPath))
            {
                File.Create(m_JsonPath).Dispose();
            }
            
            //将Proto数据转Json
            File.WriteAllText(m_JsonPath, JsonFormatter.Default.Format(m_PlayerDatas));

            //读取Json数据转Proto
            using (StreamReader file = new StreamReader(m_JsonPath))
            {
                m_PlayerDatas = PlayerDatas.Parser.ParseJson(file.ReadToEnd());
            }

没错,就是这么简单,运行程序后就可以看到Json文件和m_PlayerDatas都有了变化

你可能感兴趣的:(C#,Protobuf)