我有以下 JSON:
"printers": {
"default": "Kyocera ECOSYS M6230cidn KX",
"userMappings": [
{
"user": "050327",
"printer": "SG Fanelli"
},
{
"user": "050139",
"printer": "SGPB"
},
{
"user": "050115",
"printer": "SG Holenstein"
}
]
}
對于反序列化,我創建了以下類:
public class PrintersDto {
public string Default { get; set; }
public IEnumerable<UserPrinterDto> UserMappings { get; set; } = new List<UserPrinterDto>();
}
public class UserPrinterDto {
public string User { get; set; }
public string Printer { get; set; }
}
這是我的加載邏輯
public PrintersDto GetPrintersConfig() {
using (var configFileStream = FileIoService.ReadFile(ConfigFilePath)) {
using (var reader = new StreamReader(configFileStream)) {
var jsonString = reader.ReadToEnd();
_configData = (JObject) JsonConvert.DeserializeObject(jsonString);
var jtoken = _configData.SelectToken("printers");
return jtoken.Value<PrintersDto>();
}
}
}
當我執行這個時,我得到了例外
無法將 Newtonsoft.Json.Linq.JObject 轉換為 Newtonsoft.Json.Linq.JToken
在jtoken.Value<PrintersDto>();
有人可以幫助我,為什么會發生這種情況以及我該如何解決?
uj5u.com熱心網友回復:
使用您的課程,您可以獲得資料
PrintersDto printersDto = JObject.Parse(jsonString)["printers"].ToObject<PrintersDto >();
return printersDto;
uj5u.com熱心網友回復:
代替
var jtoken = _configData.SelectToken("printers");
return jtoken.Value<PrintersDto>();
和
return _configData.SelectToken("printers").ToObject<PrintersDto>();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/510702.html
標籤:C#json林克
