ASP.NET C# 反序列化 Json 对象
ASP.NET C# Deserialized Json Object
我有json这样的
{
"reader_name":"FX9600EAF871",
"mac_address":"84:24:8D:FC:0E:AD",
"tag_reads":[
{
"epc":"E28068100000003C0A05E3B7",
"antennaPort":"1",
"peakRssi":"-31",
"seenCount":"2458",
"timeStamp":"14/02/2022 22:50:24:356",
"channelIndex":"5"
}
]
}
我尝试使用此代码
public class TagRead
{
public string epc { get; set; }
public string pc { get; set; }
public string antennaPort { get; set; }
public string peakRssi { get; set; }
public string seenCount { get; set; }
public string timeStamp { get; set; }
public string phase { get; set; }
public string channelIndex { get; set; }
public string isHeartBeat { get; set; }
}
public class Hdr
{
public string reader_name { get; set; }
public string mac_address { get; set; }
public List<TagRead> tag_reads { get; set; }
}
var deserialized = Newtonsoft.Json.JsonConvert.DeserializeObject<Hdr>(json);
当尝试使用
打印 reader 名称时
deserialized.reader_name
得到结果 FX9600EAF87
但是打印时
deserialized.tag_reads
什么都没得到?
我的问题是如何获取 epc 和天线端口数据?
谢谢
因为deserialized.tag_reads
是一个集合而不是基本类型或字符串,你可能会得到你不想得到的结果。
How to get epc & antennaport data?
您可以尝试使用 deserialized.tag_reads
和 foreach
来迭代集合然后执行您的逻辑
var deserialized = Newtonsoft.Json.JsonConvert.DeserializeObject<Hdr>(json);
foreach(var item in deserialized.tag_reads){
//item.epc
//item.antennaPort
}
我有json这样的
{
"reader_name":"FX9600EAF871",
"mac_address":"84:24:8D:FC:0E:AD",
"tag_reads":[
{
"epc":"E28068100000003C0A05E3B7",
"antennaPort":"1",
"peakRssi":"-31",
"seenCount":"2458",
"timeStamp":"14/02/2022 22:50:24:356",
"channelIndex":"5"
}
]
}
我尝试使用此代码
public class TagRead
{
public string epc { get; set; }
public string pc { get; set; }
public string antennaPort { get; set; }
public string peakRssi { get; set; }
public string seenCount { get; set; }
public string timeStamp { get; set; }
public string phase { get; set; }
public string channelIndex { get; set; }
public string isHeartBeat { get; set; }
}
public class Hdr
{
public string reader_name { get; set; }
public string mac_address { get; set; }
public List<TagRead> tag_reads { get; set; }
}
var deserialized = Newtonsoft.Json.JsonConvert.DeserializeObject<Hdr>(json);
当尝试使用
打印 reader 名称时deserialized.reader_name
得到结果 FX9600EAF87
但是打印时
deserialized.tag_reads
什么都没得到?
我的问题是如何获取 epc 和天线端口数据?
谢谢
因为deserialized.tag_reads
是一个集合而不是基本类型或字符串,你可能会得到你不想得到的结果。
How to get epc & antennaport data?
您可以尝试使用 deserialized.tag_reads
和 foreach
来迭代集合然后执行您的逻辑
var deserialized = Newtonsoft.Json.JsonConvert.DeserializeObject<Hdr>(json);
foreach(var item in deserialized.tag_reads){
//item.epc
//item.antennaPort
}