问题描述
我有一个json,新的System.Text.Json.JsonSerializer.Deserialize<T>(json_data)
用正确数量的元素序列化为List<T>
,但是里面的对象的所有值都为null或0
I have a json that the new System.Text.Json.JsonSerializer.Deserialize<T>(json_data)
serialize as List<T>
with the correct numbers of elements, but then the objects inside have all the values null or 0
与Newtonsoft.Json.JsonConvert.DeserializeObject<T>(json_data)
相同的json已正确填充.
Same json with Newtonsoft.Json.JsonConvert.DeserializeObject<T>(json_data)
is correctly filled.
班级:
public class SensorValue
{
public string StationCode { get; set; }
public string SensorCode { get; set; }
public string SensorNameIt { get; set; }
public string SensorNameDe { get; set; }
public string SensorNameLd { get; set; }
public string SensorUnitMeasure { get; set; }
public DateTime SamplingDateTime { get; set; }
public Decimal SamplingValue { get; set; }
}
JSON
[{"stationCode":"89190MS","sensorCode":"LT","sensorNameIt":"Temperatura dell´aria","sensorNameDe":"Lufttemperatur","sensorNameLd":"Temperatura dl’aria","sensorUnitMeasure":"°C","samplingDateTime":"2019-11-15T15:10:00","samplingValue":0.3},{"stationCode":"89190MS","sensorCode":"N","sensorNameIt":"Precipitazioni","sensorNameDe":"Niederschlag","sensorNameLd":"plueia","sensorUnitMeasure":"mm","samplingDateTime":"2019-11-15T15:10:00","samplingValue":0.4},{"stationCode":"89190MS","sensorCode":"WR","sensorNameIt":"Direzione del vento","sensorNameDe":"Windrichtung","sensorNameLd":"Direzion dl vënt","sensorUnitMeasure":"° ","samplingDateTime":"2019-11-15T15:10:00","samplingValue":165.7},{"stationCode":"89190MS","sensorCode":"WG","sensorNameIt":"Velocità del vento","sensorNameDe":"Windgeschwindigkeit","sensorNameLd":"Slune dl vënt","sensorUnitMeasure":"m/s","samplingDateTime":"2019-11-15T15:10:00","samplingValue":0.7},{"stationCode":"89190MS","sensorCode":"WG.BOE","sensorNameIt":"Velocitá raffica","sensorNameDe":"Windgeschwindigkeit Böe","sensorNameLd":"Slune dl vënt","sensorUnitMeasure":"m/s","samplingDateTime":"2019-11-15T15:10:00","samplingValue":1.3},{"stationCode":"89190MS","sensorCode":"LF","sensorNameIt":"Umidità relativa","sensorNameDe":"relative Luftfeuchte","sensorNameLd":"Tume relatif","sensorUnitMeasure":"%","samplingDateTime":"2019-11-15T15:10:00","samplingValue":100.0},{"stationCode":"89190MS","sensorCode":"LD.RED","sensorNameIt":"Pressione atmosferica","sensorNameDe":"Luftdruck","sensorNameLd":"Druch dl’aria","sensorUnitMeasure":"hPa","samplingDateTime":"2019-11-15T15:10:00","samplingValue":1006.9},{"stationCode":"89190MS","sensorCode":"GS","sensorNameIt":"Radiazione globale ","sensorNameDe":"Globalstrahlung","sensorNameLd":"Nraiazion globala ","sensorUnitMeasure":"W/m²","samplingDateTime":"2019-11-15T15:10:00","samplingValue":3.8},{"stationCode":"89190MS","sensorCode":"SD","sensorNameIt":"Durata soleggiamento","sensorNameDe":"Sonnenscheindauer","sensorNameLd":"Dureda dl surëdl","sensorUnitMeasure":"s","samplingDateTime":"2019-11-15T15:10:00","samplingValue":0.0}]
有什么帮助吗?consoleapp项目.net core 3.0.0牛顿软件12.0.3
Any help ?consoleapp project .net core 3.0.0newtonsoft 12.0.3
推荐答案
System.Text.Json
解串器的默认行为是将属性匹配为区分大小写.您需要传递告诉它与大小写无关的选项:
The default behavior of the System.Text.Json
deserializer is to match properties as case sensitive. You need to pass options telling it to match case insensitive:
using System.Text.Json;
JsonSerializer.Deserialize<T>(json_data, new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
});
这篇关于System.Text.JSON不会反序列化Newtonsoft的功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!