| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity C#对象合并Json数据中相同属性字段的值,C#对象中的某个属性和json中的同名属性的值合并 -> 正文阅读 |
|
[游戏开发]Unity C#对象合并Json数据中相同属性字段的值,C#对象中的某个属性和json中的同名属性的值合并 |
问题介绍: 两个类型 // 同步数据,包含用户数据 public class SysMessage // 用户数据 public class UserData ?? ?public string email{ get; set; }//邮箱 ???????public long gold { get; set; }//游戏币 } SysMessage类型一般是心跳返回的,而且心跳返回的数据不是完整数据,只会同步某些字段,比如只同步 UserData中的gold. 我在收到服务器的json数据后,都是直接解析成类的 SysMessage?data = JsonMapper.ToObject<SysMessage>(@request.downloadHandler.text); 然而类的解析后 ,一些不需要同步的字段初始化了,也就是会出现?email是null,? excution是0 导致不知道是不是需要同步的字段,我们只需要同步json数据中包含的字段就可以了 解决方法 sys1?是直接收到的json数据转JsonData : JsonMapper.ToObject(@request.downloadHandler.text)["sysMessage"] 这里用的unityWebRequest请求的json数据 ?var sys = sys1 as JsonData; 这里使用try catch是因为 jsonData一旦是一个不包含key就马上报错,比如 sys中不包含字段playerMsg,如果直接使用sys["playerMsg"]就会报错,这里是尝试获取我们需要的字段 System.Collections.Generic.KeyNotFoundException: The given key was not present i 这样就做到了,只同步有的数据,防止json直接转class导致的默认值问题,分不清哪些是同步过来的? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/23 15:10:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |