/Atlassian.Jira/Remote/NestedValueJsonConverter.cs
C# | 33 lines | 28 code | 5 blank | 0 comment | 0 complexity | 6cd1de0cfdaa989ae279dc386b136e3a MD5 | raw file
Possible License(s): BSD-3-Clause
- using System;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- namespace Atlassian.Jira.Remote
- {
- public class NestedValueJsonConverter : JsonConverter
- {
- private readonly string _innerProperty;
- public NestedValueJsonConverter(string innerProperty)
- {
- this._innerProperty = innerProperty;
- }
- public override bool CanConvert(Type objectType)
- {
- return true;
- }
- public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
- {
- var outerObject = new JObject(new JProperty(this._innerProperty, value));
- outerObject.WriteTo(writer);
- }
- public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
- {
- var outerObject = JObject.Load(reader);
- return outerObject[_innerProperty]?.ToObject(objectType);
- }
- }
- }