目前我正在做的是序列化JsonResult.Data
然后反序列化为dynamic
变量,然后在每行循环并获得Document
。有办法处理这个吗?感谢
if (string.IsNullOrWhiteSpace(searchTerm_))
searchTerm_ = "*";
_azureSearch = new AzureSearchService("afindexdev");
JsonResult result = new JsonResult
{
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
Data = _azureSearch.SearchAssetFactory(searchTerm_).Results
};
string json = JsonConvert.SerializeObject(result.Data);
var resultJsonString = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(json);
foreach (dynamic row in resultJsonString)
{
var associatemItem = new AssociatedItem();
associatemItem.Id = row.Document.Id;
associatemItem.Title = row.Document.Title;
associatemItem.Type = row.Document.Type;
searcResult.AssociatedItems.Add(associatemItem);
}
答案 0 :(得分:0)
这个怎么样?
var associatedItem = Newtonsoft.Json.JsonConvert.DeserializeObject&lt;列表&lt; AssociatedItem&gt; &GT;(JSON);
这样你就不必亲自制作自己的物品了。
答案 1 :(得分:0)
您可以使用属性[SerializePropertyNamesAsCamelCase]为要反序列化的属性定义模型。此属性包含在Microsoft.Azure.Search库中。之后,您需要做的就是在搜索通用中定义您的模型 - 比如这个酒店类
var sp = new SearchParameters();
if (!String.IsNullOrEmpty(filter))
{
sp.Filter = filter;
}
DocumentSearchResult<Hotel> response = indexClient.Documents.Search<Hotel>(searchText, sp);
您可以找到更多信息here