例如問題: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;
}