MAK*_*MAK 1 c# asp.net arrays json asp.net-core
这些是我拥有的类,它们代表了我希望向最终用户显示数据的方式:
namespace PHCTimeSeriesInsights.API.Models
{
public class ProductTimeSeries
{
public List<DeviceTimeSeries> DeviceTimeSeries { get; set; }
public string DeviceId { get; set; }
}
public class DeviceTimeSeries
{
public DateTime TimeStamp { get; set; }
public Double MeasuredValue { get; set; }
public string DateField { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
我想要以下格式的输出:这里的字符串 8787887 是设备的实际值;
{
"8787887":[
{
"prop":"val",
"prop":"val"
},
{
"prop":"val1",
"prop":"val2"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我有这个片段代表我所做的,但它没有给我一个最佳格式:
List<ProductTimeSeries> prd = new List<ProductTimeSeries>();
prd.Add(new ProductTimeSeries
{
DeviceId = getTelemetry.PropertyName,
DeviceTimeSeries = deviceIdTimeSeries
});
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果:
[
{
"deviceTimeSeries": [
{
"timeStamp": "2019-07-19T17:44:55.856Z",
"measuredValue": 6.98,
"dateField": "7/19/2019"
},
{
"timeStamp": "2019-07-19T17:45:58.697Z",
"measuredValue": 7.04,
"dateField": "7/19/2019"
}
],
"deviceId": "deviceId"
}
]
Run Code Online (Sandbox Code Playgroud)
我必须以我想要的方式对格式进行哪些更改?
在 C# 中,您希望实际使用字典而不是使用类。在你的情况下,应该使用工作Dictionary<string, List<DeviceTimeSeries>>,其中string就是你的“设备ID”。
请参阅下面的示例。
https://dotnetfiddle.net/luE1Z4
哪个排序运行
Console.WriteLine("Dictionary Test");
var productTimeSeries2 = new Dictionary<string, IList<DeviceTimeSeries>> () {
{
"DeviceId-888",
new List < DeviceTimeSeries > () {
new Program.DeviceTimeSeries() {
TimeStamp = DateTime.Now,
MeasuredValue = 2,
DateField = "7/29/2019"
}
}
}
};
Console.WriteLine(JsonConvert.SerializeObject(productTimeSeries2));
Run Code Online (Sandbox Code Playgroud)
和输出
{
"DeviceId-888":[
{
"TimeStamp":"2019-07-31T20:45:28.677905+00:00",
"MeasuredValue":2.0,
"DateField":"7/29/2019"
}
]
}
Run Code Online (Sandbox Code Playgroud)