unity解决一个咨询5千人没人回答和深思但是确实需要解决的问题json具体字段类型不确定的问题

本文探讨如何通过编程自动化处理Json中的不确定节点,包括递归解析数组和对象,并介绍使用Newton JSON和JsonConvert解决不同数据类型的转换问题,如JObject、JArray和动态类型。
摘要由CSDN通过智能技术生成

首先 不确定如果是单独的节点,肯定是可以自己写代码判断解决的,
但是我是强迫症,我要解决自动化,解决子节点中的子节点中的子节点, 循环节点,

image.png

把这个这个不确定的字段变成字符串,或者 JObject或者JArray

假设
type=1则data是 数组

{
"type":1
"data":[]
}

假设 type=2
data是对象

{
"type":1
"data":{}
}

然后我把data定义了各种类型都失败了,定义为string也是我的一个退让。JsonUtility.FromJson<MyNode>(obj.ToString());

1S0(AR8@T(5DZS805A7T6Z7.png

上面某个东西写错了,不过定义了jarray或者jobject 就会为null, 或者 dynamic或object 者string类
型但是真实的值并不是字符串也是为null,

这不应该呀,java都支持。

于是我我想到了牛顿JSON,以及微软自带的MyNode myNode =JsonConvert.DeserializeObject<MyNode>(obj.ToString());

完美解决,支持JObject,JArray,object 或者dynamic貌似则直接识别为字符串,不过这都能解决需求了。

image.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值