将 javascript 数组导入 MVC
Import javascript array into MVC
我有以下 javascript:
{
"presenceDetected":true,
"timestamp":1571219073514,
"RegionMap":{
"0":1,
"1":0
},
"deviceId":" TEST_DEVICE_ID "
}
和我当前的 C# MVC class:
[DataContract]
public class Presence
{
[DataMember]
public bool presenceDetected { get; set; }
[DataMember]
public long timestamp { get; set; }
[DataMember]
public Array RegionMap { get; set; }
[DataMember]
public string deviceId { get; set; }
}
还有我的API方法:
public void MonitorPresence([FromBody] Presence APresenceData)
{
//Loop thru RegionMap here.
}
虽然这似乎引入了数组 - 但实际上我没有得到任何值。我确定它错了。区域地图数组中可能有 0、1 或 2+ 个值。
我无法更改 JSON - 如何构建我的 class 以接受 RegionMap 数组?
修复您的 class,用 Dictionary
替换 Array RegionMap
[DataContract]
public class Presence
{
[DataMember]
public bool presenceDetected { get; set; }
[DataMember]
public long timestamp { get; set; }
[DataMember]
public Dictionary<string,string> RegionMap { get; set; }
[DataMember]
public string deviceId { get; set; }
}
我有以下 javascript:
{
"presenceDetected":true,
"timestamp":1571219073514,
"RegionMap":{
"0":1,
"1":0
},
"deviceId":" TEST_DEVICE_ID "
}
和我当前的 C# MVC class:
[DataContract]
public class Presence
{
[DataMember]
public bool presenceDetected { get; set; }
[DataMember]
public long timestamp { get; set; }
[DataMember]
public Array RegionMap { get; set; }
[DataMember]
public string deviceId { get; set; }
}
还有我的API方法:
public void MonitorPresence([FromBody] Presence APresenceData)
{
//Loop thru RegionMap here.
}
虽然这似乎引入了数组 - 但实际上我没有得到任何值。我确定它错了。区域地图数组中可能有 0、1 或 2+ 个值。
我无法更改 JSON - 如何构建我的 class 以接受 RegionMap 数组?
修复您的 class,用 Dictionary
[DataContract]
public class Presence
{
[DataMember]
public bool presenceDetected { get; set; }
[DataMember]
public long timestamp { get; set; }
[DataMember]
public Dictionary<string,string> RegionMap { get; set; }
[DataMember]
public string deviceId { get; set; }
}