public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { Dictionary<string, object> filterDict = serializer.Deserialize<Dictionary<string, object>>(reader); Dictionary<string, object> fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(filterDict.First().Value.ToString()); string filterName = filterDict.First().Key; NormalizationTokenFilterBase filter = null; TokenFilterTypeEnum tokenFilterType = TokenFilterTypeEnum.Ngram; string tokenFilterTypeStr = fieldDict.GetString(_TYPE); tokenFilterType = TokenFilterTypeEnum.Find(tokenFilterTypeStr); if (tokenFilterType == null) { throw new Exception(tokenFilterTypeStr + " is not a valid token filter."); } else if (tokenFilterType == TokenFilterTypeEnum.ArabicNormalization) { filter = new ArabicNormalizationTokenFilter(filterName); } else if (tokenFilterType == TokenFilterTypeEnum.PersianNormalization) { filter = new PersianNormalizationTokenFilter(filterName); } else { throw new Exception(tokenFilterTypeStr + " is not a valid normalization token filter."); } TokenFilterBase.Deserialize(filter, fieldDict); return filter; }
public void PASS_Create() { ArabicNormalizationTokenFilter filter = new ArabicNormalizationTokenFilter("name") { Version = 2.4 }; Assert.IsNotNull(filter); Assert.AreEqual("name", filter.Name); Assert.AreEqual(2.4, filter.Version); }
public void PASS_Serialize() { ArabicNormalizationTokenFilter filter = new ArabicNormalizationTokenFilter("name") { Version = 2.4 }; string json = JsonConvert.SerializeObject(filter); Assert.IsNotNull(json); string expectedJson = "{\"name\":{\"type\":\"arabic_normalization\",\"version\":2.4}}"; Assert.AreEqual(expectedJson, json); }