【发布时间】:2016-02-03 20:06:31
【问题描述】:
我有一些遥测数据作为 JSON 存储在文本字段中。我正在尝试对 POCO 进行逆向工程,以无缝提取和呈现该数据,而无需执行任何 ForEach 循环的后处理。
当我尝试手动解析数据字段中的 JSON 字符串时,它可以工作。当我通过 ORMLite 进行选择时,它会返回默认对象。我错过了什么?
作品
string x = "{\"alive\":true,\"paperStatus\":\"0:NoIssue\"}";
var telemetry = JsonSerializer.DeserializeFromString<KioskTelemetryData>(x);
不填充数据字段
var exp = Db.From<KioskTelemetryLog>()
.Where(q => q.Identifier == request.Identifier)
.OrderByDescending(q => q.Timestamp);
var data = Db.Select(exp);
以下是数据记录的样子:
Id Identifier IsCurrent RedemptionCenterId Timestamp Status Data
1 XXX 0 NULL 2015-11-24 11:10:53.527 1 {"alive":true,"paperStatus":"1:LowPaper"}
2 XXX 0 NULL 2015-12-01 12:16:56.653 0 {"alive":true,"paperStatus":"0:NoIssue"}
1 XXX 1 NULL 2015-12-01 18:32:11.337 2 {"alive":false}
这里是 POCO:
[Alias("TelemetryLog")]
public class KioskTelemetryLog
{
public long Id { get; set; }
public string Identifier { get; set; }
public bool IsCurrent { get; set; }
public int? RedemptionCenterId { get; set; }
public DateTime Timestamp { get; set; }
// 0 = okay, 1 = warning, 2 = error
public sbyte Status { get; set; }
public KioskTelemetryData Data { get; set; }
}
public class KioskTelemetryData
{
public bool Alive { get; set; }
public string PaperStatus { get; set; }
}
【问题讨论】:
标签: json servicestack ormlite-servicestack servicestack-text