Unity使用NewtonSoft json插件反序列化为空时报错

起因是在做一个扫码功能时,需要轮询用户的扫码状态。

返回状态类中有为空字段,这个时候可能会报空指针的错误提示

比如原本代码为:

        private bool GetActiveState(string jsonData) 
        {
            var data = JsonConvert.DeserializeObject<YGXJ_QRActiveData>(jsonData);
            return data.result.activated;
        }

在反序列化时就会在这里异常然后跳出逻辑,我们可以通过自定义序列化设置来规避这样的异常跳出问题

 

        private bool GetActiveState(string jsonData) 
        {
            Debug.Log(jsonData);
            var settings = new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            };
            var data = JsonConvert.DeserializeObject<YGXJ_QRActiveData>(jsonData,settings);
            return data.result.activated;
        }

 

 

通过自定义设置,可以正常返回,即使是null,也可以正常返回试做false,不影响逻辑

posted @ 2025-07-07 11:16  SummerTrainnn  阅读(40)  评论(0)    收藏  举报