/Atlassian.Jira/Remote/NestedValueJsonConverter.cs
https://bitbucket.org/farmas/atlassian.net-sdk · C# · 33 lines · 28 code · 5 blank · 0 comment · 0 complexity · 6cd1de0cfdaa989ae279dc386b136e3a MD5 · raw file
- 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);
- }
- }
- }