我已經索引定義爲這樣一個目標:如何實現NEST使用的NodaTime JSON轉換器?
public class CourseOffering
{
public int CourseId { get; set; }
public string Title { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public ICollection<TimeBlock> TimeBlocks { get; set; }
}
的TimeBlock類定義爲:
public class TimeBlock
{
public DayOfWeek Day { get; set; }
public LocalTime StartTime { get; set; }
public LocalTime EndTime { get; set; }
}
當調用動態搜索方法,一切工作正常(大概是因爲它不知道什麼要反序列化)。結果正確返回。
當調用通用搜索方法並傳入CourseOffering類型時,默認序列化程序在反序列化LocalTime對象時出現問題。我得到以下JsonReaderException:
讀取整數時出錯。意外的令牌:StartObject。路徑 'hits.hits [0] ._ source.timeBlocks [0] .startTime',第1行,位置655
我曾嘗試添加LocalTimeConverter像這樣:
var settings = new ConnectionSettings(uri);
settings.SetDefaultIndex(index);
settings.AddContractJsonConverters(t => typeof (LocalTime).IsAssignableFrom(t) ? NodaConverters.LocalTimeConverter : null);
但是它導致此JsonReaderException:
無法將字符串轉換爲整數:12:30:00。路徑'hits.hits [0] ._ source.timeBlocks [0] .startTime',第1行,位置664.
我真的不能告訴我是否做錯了什麼或者是否有問題。任何援助將不勝感激。
它看起來像你正在嘗試使用Json.NET轉換器 - 但實際上是期待'DataContractJsonSerializer'的方法嗎? –