PageRenderTime 51ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/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
Possible License(s): BSD-3-Clause
  1. using System;
  2. using Newtonsoft.Json;
  3. using Newtonsoft.Json.Linq;
  4. namespace Atlassian.Jira.Remote
  5. {
  6. public class NestedValueJsonConverter : JsonConverter
  7. {
  8. private readonly string _innerProperty;
  9. public NestedValueJsonConverter(string innerProperty)
  10. {
  11. this._innerProperty = innerProperty;
  12. }
  13. public override bool CanConvert(Type objectType)
  14. {
  15. return true;
  16. }
  17. public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
  18. {
  19. var outerObject = new JObject(new JProperty(this._innerProperty, value));
  20. outerObject.WriteTo(writer);
  21. }
  22. public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
  23. {
  24. var outerObject = JObject.Load(reader);
  25. return outerObject[_innerProperty]?.ToObject(objectType);
  26. }
  27. }
  28. }