JSON反序列化出现null值问题JsonConvert.DeserializeObject(msg)


 

例如问题:msg 为json串

{"notifyType":"deviceDataChanged","deviceId":"912b5b6b-0612-4f9e-a183-2fa28ff82822","gatewayId":"912b5b6b-0612-4f9e-a183-2fa28ff82822","requestId":null,"service":{"serviceId":"WaterMeter","serviceType":"WaterMeter","data":{"IMEI":"866971037991945","Version":2,"FactoryNo":16,"DeviceType":2,"signalStrength":-88,"csq":15,"snr":"20","cc":0,"data":"A568E3000C00021002383636393731303337393931393435A8FF1400000F0201FB31CD626B8A906A7559345DDCEE196C9EDD3C639B6C26"},"eventTime":"20200419T190838Z"}};

var dataChangeDto=JsonConvert.DeserializeObject<DataChangeDto>(msg);之后

dataChangeDto.service.data .data  为null ,实际上有值,数据类型也对应。

对应的实体类如下:

public class DataChangeDto
{
public string notifyType { get; set; }
public string deviceId { get; set; }
public string gatewayId { get; set; }
public object requestId { get; set; }
public Service service { get; set; }
}

public class Service
{
public string serviceId { get; set; }
public string serviceType { get; set; }
public Data data { get; set; }
public string eventTime { get; set; }
}

public class Data
{
public string WaterCurrentData03 { get; set; }

public string WaterCurrentData02 { get; internal set; }
public string DataField { get; internal set; }
public string WaterCurrentData04 { get; internal set; }
public string DATA { get; internal set; }
public string WaterCurrentData05 { get; internal set; }


public string IMEI { get; set; }
public int Version { get; set; }
public int FactoryNo { get; set; }
public int DeviceType { get; set; }
public int signalStrength { get; set; }
public string snr { get; set; }
public int cc { get; set; }

}

 解决方案:

在类  class Data里加写构造函数

public Data(string DATA)
{
this.DATA = DATA;
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM