在Leads表中,有一个包含JSON字符串的列Data
。在LINQ语句中,我需要从该JSON中提取字段:
var results = from l in leads
select new MyLeadObject
{
LeadID = l.LeadID,
...
RequestType = (string)l.Data["RequestTypeID"]
};
这是JSON的缩短版本:
{
"RequestTypeID":1
}
RequestTypeID
是一个字符串。
我一直在阅读其他主题并尝试将其拼凑在一起。没有太多运气。
修改
在Nkosi的帮助下,我做到了这一点:
RequestType = (string)JSONNetSerialization.DeserializeJsonNet<LeadData>(l.Data).RequestTypeID
唯一的问题是LeadData.RequestTypeID是一个枚举,因此它不会将枚举转换为字符串。我不确定如何获取枚举的值而不是整个枚举本身。在LINQ之外我可以这样做:RequestTypeID.GetDisplayName();
但LINQ无法识别.GetDisplayName()
。
答案 0 :(得分:1)
您可以使用Json.Net
来解析Data
字段中的JSON以获取该属性。
var results = leads.Select(l =>
new MyLeadObject {
LeadID = l.LeadID,
//...
RequestType = (string)JsonConvert.DeserializeObject(l.Data)["RequestTypeID"]
});