using System.Collections.Generic;
using Newtonsoft.Json.Linq;
public static void Main()
""request_id"": ""6887a53f701a59574a0f3a7012e01aa8""
""accounts_balance_ach"": {
""accounts_balance_pending"": {
""raw"": ""Brisa34@hotmail.com""
""raw"": ""c98808a2-d7d6-4444-834d-2fe4f6858f6b""
""raw"": ""The Johnstons""
""raw"": ""Cornelius_Schiller14@hotmail.com""
""raw"": ""2018-10-02T05:42:07-05:00""
""accounts_donations"": {
""raw"": ""Cloyd Jakubowski""
""accounts_balance_ach"": {
""accounts_balance_pending"": {
""raw"": ""Ruby87@yahoo.com""
""raw"": ""687af11f-0f73-4112-879c-1108303cb07a""
""raw"": ""Kennith Johnston""
""raw"": ""Evangeline_Wisoky92@hotmail.com""
""raw"": ""2018-10-02T11:16:02-05:00""
""accounts_donations"": {
var root = JsonConvert.DeserializeObject<RootObject>(json);
public List<Result> results { get; set; }
[JsonConverter(typeof(JsonPathConverter))]
[JsonProperty("phone.raw")]
public string Phone { get; set; }
[JsonProperty("accounts_balance_ach.raw")]
public decimal AccountsBalanceAch { get; set; }
[JsonProperty("accounts_balance_pending.raw")]
public decimal AccountsBalancePending { get; set; }
[JsonProperty("email.raw")]
public string Email { get; set; }
[JsonProperty("accounts_count.raw")]
public decimal AccountsCount { get; set; }
public string Id { get; set; }
[JsonProperty("display_name.raw")]
public string DisplayName { get; set; }
[JsonProperty("type.raw")]
public string Type { get; set; }
[JsonProperty("advisor_email.raw")]
public string AdvisorEmail { get; set; }
[JsonProperty("created_at.raw")]
public string CreatedAt { get; set; }
[JsonProperty("source.raw")]
public string Source { get; set; }
[JsonProperty("accounts_balance.raw")]
public decimal AccountsBalance { get; set; }
[JsonProperty("accounts_donations.raw")]
public decimal AccountsDonations { get; set; }
[JsonProperty("advisor_name.raw")]
public string AdvisorName { get; set; }
[JsonProperty("_meta.score")]
public decimal MetaScore { get; set; }
class JsonPathConverter : JsonConverter
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
JObject jo = JObject.Load(reader);
object targetObj = Activator.CreateInstance(objectType);
foreach (PropertyInfo prop in objectType.GetProperties().Where(p => p.CanRead && p.CanWrite))
JsonPropertyAttribute att = prop.GetCustomAttributes(true)
.OfType<JsonPropertyAttribute>()
string jsonPath = (att != null ? att.PropertyName : prop.Name);
JToken token = jo.SelectToken(jsonPath);
if (token != null && token.Type != JTokenType.Null)
object value = token.ToObject(prop.PropertyType, serializer);
prop.SetValue(targetObj, value, null);
public override bool CanConvert(Type objectType)
public override bool CanWrite
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
throw new NotImplementedException();