@@ -17,39 +17,39 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
1717 var percentiles = new PercentilesAggregation ( ) ;
1818 ReadMetricProperties ( percentiles , properties ) ;
1919 percentiles . Method = ReadMethodProperty ( properties ) ;
20- if ( properties . ContainsKey ( "percents" ) )
21- percentiles . Percents = properties [ "percents" ] . ToObject < List < double > > ( ) ;
20+ if ( properties . TryGetValue ( "percents" , out JToken percentsToken ) )
21+ percentiles . Percents = percentsToken . ToObject < List < double > > ( ) ;
2222 return percentiles ;
2323 }
2424
2525 protected IPercentilesMethod ReadMethodProperty ( Dictionary < string , JToken > properties )
2626 {
2727 IPercentilesMethod method = null ;
28- if ( properties . ContainsKey ( "hdr" ) )
29- method = properties [ "hdr" ] . ToObject < HDRHistogramMethod > ( ) ;
30- else if ( properties . ContainsKey ( "tdigest" ) )
31- method = properties [ "tdigest" ] . ToObject < TDigestMethod > ( ) ;
28+ if ( properties . TryGetValue ( "hdr" , out JToken hdrToken ) )
29+ method = hdrToken . ToObject < HDRHistogramMethod > ( ) ;
30+ else if ( properties . TryGetValue ( "tdigest" , out JToken tdigestToken ) )
31+ method = tdigestToken . ToObject < TDigestMethod > ( ) ;
3232 return method ;
3333 }
3434
3535 protected void ReadMetricProperties ( IMetricAggregation metric , Dictionary < string , JToken > properties )
3636 {
37- if ( properties . ContainsKey ( "field" ) )
38- metric . Field = properties [ "field" ] . ToString ( ) ;
37+ if ( properties . TryGetValue ( "field" , out JToken fieldToken ) )
38+ metric . Field = fieldToken . ToString ( ) ;
3939
40- if ( properties . ContainsKey ( "script" ) )
40+ if ( properties . TryGetValue ( "script" , out JToken scriptToken ) )
4141 {
42- var scriptProps = JObject . FromObject ( properties [ "script" ] ) . Properties ( ) . ToDictionary ( p => p . Name , p => p . Value ) ;
42+ var scriptProps = JObject . FromObject ( scriptToken ) . Properties ( ) . ToDictionary ( p => p . Name , p => p . Value ) ;
4343 if ( scriptProps . ContainsKey ( "inline" ) )
44- metric . Script = properties [ "script" ] . ToObject < InlineScript > ( ) ;
45- else if ( scriptProps . ContainsKey ( "file" ) )
46- metric . Script = properties [ "script" ] . ToObject < FileScript > ( ) ;
47- else if ( scriptProps . ContainsKey ( "id" ) )
48- metric . Script = properties [ "id" ] . ToObject < IndexedScript > ( ) ;
44+ metric . Script = scriptToken . ToObject < InlineScript > ( ) ;
45+ else if ( scriptProps . ContainsKey ( "file" ) )
46+ metric . Script = scriptToken . ToObject < FileScript > ( ) ;
47+ else if ( scriptProps . TryGetValue ( "id" , out JToken idToken ) )
48+ metric . Script = idToken . ToObject < IndexedScript > ( ) ;
4949 }
5050
51- if ( properties . ContainsKey ( "missing" ) )
52- metric . Missing = double . Parse ( properties [ "missing" ] . ToString ( ) ) ;
51+ if ( properties . TryGetValue ( "missing" , out JToken missingToken ) )
52+ metric . Missing = double . Parse ( missingToken . ToString ( ) ) ;
5353 }
5454
5555 public override void WriteJson ( JsonWriter writer , object value , JsonSerializer serializer )
0 commit comments