美文网首页
JsonConvert.DeserializeObject 对象

JsonConvert.DeserializeObject 对象

作者: wwmin_ | 来源:发表于2020-10-12 15:24 被阅读0次

JsonConvert.DeserializeObject<U>(resultJson) 遇到对象是空字符串, 解析报错解决办法

正常的json 引用类型返回空时应为null, 但是使用非强类型语言时此处可以时空字符串, 这样导致c# JsonConvert.DeserializeObject解析失败,

public class StudentResult{
   public Student student{ get; set; }
}
public class Student{
   public string name {get;set;}
   public int age {get;set;}
}
var resultJson ='{"studeng":null}';
var data = JsonConvert.DeserializeObject<StudentResult>(resultJson);//解析报错

方法一: 将DTO添加构造函数即可正确解析

public class StudentResult{
   public Student student{ get; set; }
   public void StudentResult(Student s){
     student = s;
  }
}
public class Student{
   public string name {get;set;}
   public int age {get;set;}//如果json中 age 值为null 即值类型为null 则此处需要改为可为null类型 int? 即可
}

方法二: 也可以用JObject 或 JArray 解析某个json值, 获取该值之后判断解析, 并自己组装成实例对象即可.

var resultJson ='{"studeng":null}';
var jobj = JObject.Parse(resultJson);
var student = jobj.GetValue("student").ToString();
if(string.IsNullOrWhiteSpace(student){ .... }

相关文章

网友评论

      本文标题:JsonConvert.DeserializeObject 对象

      本文链接:https://www.haomeiwen.com/subject/mfzupktx.html