JSON result from PipeDrive API does not deserialize

1.1k views Asked by At

I'll excuse myself in advance for such a long post, fact of the matter is that I have no clue as to where the problem might persist.

I'm working on a program that is required to pull deals - with custom fields - related to a selected organization out of PipeDrive, do some calculations and save the results as a document. Currently it does the following:

  1. Query the API for companies using textbox input as keyword.
  2. Deserialize the returned JSON in a class generated with JSON2CSharp.
  3. Put results in a list.

I've got this part down, it works perfectly. However, when I worked out the second part of the requirements, things get weird. I will elaborate the steps carefully:

  1. When an organization is clicked, query the API for deals corresponding to the organization ID and name.

    public List<int> GetOrgDealcodes(string ID, string search)
    {
        List<int> returnlist = new List<int>();
        JsonTextReader reader = new JsonTextReader(new StringReader((string)ReturnObjectsByName(PipeLineNiveau.deals, search, ID)));
        reader.SupportMultipleContent = true;
        JsonSerializer serializer = new JsonSerializer();
        serializer.ObjectCreationHandling = ObjectCreationHandling.Replace;
    
        try
        {
            PipeDriveDeals.RootObject root = serializer.Deserialize<PipeDriveDeals.RootObject>(reader);
            foreach (PipeDriveDeals.data tmp in root.data)
            {
                returnlist.Add(tmp.id);
            }
        }
        catch (JsonException ex)
        {
            Error.TopBar("Deserializing error", ex.Message);
        }
        return returnlist;
    }
    

    ReturnObjectsByName() returns an object containing the JSON response

  2. Get details of each of the deal ID's returned.

    public PipeDriveDeals.data GetDeal(string ID)
    {
        PipeDriveDeals.data returnvar = new PipeDriveDeals.data();
        JsonTextReader reader = new JsonTextReader(new StringReader((string)ReturnObject(PipeLineNiveau.deals, ID)));
        reader.SupportMultipleContent = true;
        JsonSerializer serializer = new JsonSerializer();
        serializer.ObjectCreationHandling = ObjectCreationHandling.Replace;
    
        try
        {
            returnvar = serializer.Deserialize<PipeDriveDeals.data>(reader);
        }
        catch(Exception ex)
        {
            Error.TopBar("Error reading deal", ex.ToString());
        }
    
        return returnvar;
    }
    

    ReturnObject() returns an object containing the JSON response

  3. Deserialize the returned JSON in a class generated with JSON2CSharp (shown in GetDeal()), meaning this:

    {
        "success": true,
        "data": {
            "id": 1,
            "user_id": {
                "id": [censored],
                "name": "[censored]",
                "email": "administratie@[censored]",
                "has_pic": false,
                "pic_hash": null,
                "value": [censored]
            },
            "person_id": {
                "name": "[censored]",
                "email": "[censored]@[censored]",
                "phone": "[censored]",
                "value": 1
            },
            "org_id": {
                "name": "Test",
                "people_count": 1,
                "cc_email": "[censored][email protected]",
                "value": 1
            },
            "stage_id": 13,
            "title": "Test deal",
            "value": 200,
            "currency": "EUR",
            "add_time": "2015-04-23 13:40:42",
            "update_time": "2015-05-21 15:34:39",
            "stage_change_time": "2015-04-29 08:29:35",
            "active": false,
            "deleted": true,
            "status": "deleted",
            "next_activity_date": null,
            "next_activity_time": null,
            "next_activity_id": null,
            "last_activity_id": null,
            "last_activity_date": null,
            "lost_reason": null,
            "visible_to": "3",
            "close_time": "2015-05-21 15:34:39",
            "pipeline_id": 2,
            "won_time": null,
            "lost_time": null,
            "products_count": 2,
            "files_count": 1,
            "notes_count": 1,
            "followers_count": 1,
            "email_messages_count": null,
            "activities_count": null,
            "done_activities_count": null,
            "undone_activities_count": null,
            "reference_activities_count": null,
            "participants_count": 1,
            "expected_close_date": null,
            "f97e4841747d1fc621809ebbd0063f52f4eecf74": "Person",
            "052d4ce58edf16df90dab070591bd070f8ad88e7": "27-02-1992",
            "28fb37b17020f6dbd45ee92c94ae34811e94edd8": "Company",
            "a1032d833c7cba5a18ca09cd5418bfa3fd919137_currency": "EUR",
            "d7c2cb45d01c81159dd684111aa41bbbe5ce6db5_currency": "EUR",
            "d54e4d7b41a5bdfb2a29f7d57d8c1a4fd2ece115_currency": "EUR",
            "267976bb28be655ecf0bed63efbf4822b75aa0cf_currency": "EUR",
            "28e42860f533c6837224736257b963f3d8418ad1": "Company",
            "211a67285816fc5179c248ef08e52000a2d1b15b_currency": "EUR",
            "1697fe1baa42670ccebdb863bc03729b56d8857d_currency": "EUR",
            "4dc8edc835c39dbe422f3e1dd14f2fa3072866a8_currency": "EUR",
            "54dce1f16a984fa7d62e9c31c4c09d8832c0e423_currency": "EUR",
            "8985469f141b2df5f3236947983feea015d24145": "3,4,5",
            "05a20487e9aa7a069f678aa2af92be5c75675416": null,
            "275ac9794b3f274c1c61b47033b298d94a0125fd": null,
            "24363789868fc8fada2400a3644cb11f7683df04": null,
            "0670e6a82e67e19166f11c11778229d783395d0f": null,
            "3b0feefce60bc79e9d9fb15bc20c57a05e0ebff8": null,
            "d3748987f13e9dcdd60ffc6a567d3fd80431d77f": null,
            "c4fbdf6431406db25949cdd90dfc91eeb5295165": null,
            "c357146d49b62fe08d34bbc98550b2b96431f773": null,
            "91bd07ed77e652cf6ac4a8b82c83e7e9932dbff3": null,
            "235d277ff53390255c6c505a1634c88646fa3748": null,
            "5c06d93f2b2ef968478235270d24c91b90cd857d": null,
            "0b8350fa9af813124cf6d039ef2c932297fb1b49": null,
            "547d1d42798933363859853e775d42974080a291": null,
            "08610b715244a8ddfb3aeb1b4585c4487afd67bd": null,
            "88ea9aadb49d3b4da1d17d2224e6d4b82a532a40": null,
            "49eba2416e95c88ac3ec279a1534884429872d21": null,
            "817f3b1c7ac9220fca3a9275926dabdfb914d885": null,
            "206f941b5d992f43d5123b2a42c34db758ecc826": null,
            "60a22e72ff54fa91b04376d6c373f35da19d94ba_currency": null,
            "1326c4f84ec8611a202cc58a66d091617b910b4d": null,
            "e13d704375bb3ee3c4523ba2e1e2f79779329615": null,
            "d9bc80190727512287a4951e160b0f81d8b8f227": null,
            "7cafce1dd6b89b14f69c23d9f1f56e8f67a8c00b": null,
            "a451543d82d05cd98464d2c8b4141f95038e7e55": null,
            "67fcb1f393b0bff6c83d43414cd432b695a4d9c2": null,
            "3776ab9561a6f50d3becfd63aae885a3f9a6ce86": null,
            "0f3c7cb8eda95298a7e17cc4c5b6aea1fed99476": null,
            "b5039fda6e758955f6aefcdf86bc654fd2e7d8bd": null,
            "5c194672d7994903077944047cec441673e7b1e6": null,
            "f04a5560d8e408620c633230e141bf16a6874b30": null,
            "2502aab37117657e5fe04c2ce688b80b8e7aa17f": null,
            "ef704e3b5bc356ebceb81f00628e5813b8ecf2e5": null,
            "f4aaa546fb4bc886aed645789ccaaebad4fe60d8": null,
            "eefb3dbc53aa0d99ef0a57a864af562f6f6de49a": null,
            "5144ea977b5678f238d5aa11418510c18efcf4fc": null,
            "stage_order_nr": 5,
            "person_name": "Person",
            "org_name": "Test",
            "next_activity_subject": null,
            "next_activity_type": null,
            "next_activity_duration": null,
            "next_activity_note": null,
            "formatted_value": "€ 200",
            "weighted_value": 190,
            "formatted_weighted_value": "€ 190",
            "rotten_time": null,
            "owner_name": "[censored]",
            "cc_email": "[censored][email protected]",
            "org_hidden": false,
            "person_hidden": false,
            "average_time_to_won": {
                "y": 0,
                "m": 0,
                "d": 0,
                "h": 0,
                "i": 0,
                "s": 0,
                "total_seconds": 0
            },
            "average_stage_progress": 0,
            "age": {
                "y": 0,
                "m": 1,
                "d": 17,
                "h": 18,
                "i": 18,
                "s": 28,
                "total_seconds": 4126708
            },
            "stay_in_pipeline_stages": {
                "times_in_stages": {
                    "1": 435229,
                    "2": 0,
                    "3": 0,
                    "4": 63812,
                    "9": 692,
                    "10": 0,
                    "11": 0,
                    "12": 0,
                    "13": 3626975
                },
                "order_of_stages": [
                    11,
                    12,
                    13,
                    10,
                    9,
                    2,
                    3,
                    4,
                    1
                ]
            },
            "last_activity": null,
            "next_activity": null
        },
        "additional_data": {
            "dropbox_email": "[censored][email protected]"
        },
        "related_objects": {
            "organization": {
                "1": {
                    "id": 1,
                    "name": "Test",
                    "people_count": 1,
                    "cc_email": "[censored][email protected]"
                }
            },
            "user": {
                "[censored]": {
                    "id": [censored],
                    "name": "[censored]",
                    "email": "administratie@[censored]",
                    "has_pic": false,
                    "pic_hash": null
                }
            },
            "person": {
                "1": {
                    "id": 1,
                    "name": "Person",
                    "email": "[censored]@[censored]",
                    "phone": "[censored]"
                }
            }
        }
    }
    

to this:

class PipeDriveDeals
{
    public class UserId
    {
        public int id { get; set; }
        public string name { get; set; }
        public string email { get; set; }
        public bool has_pic { get; set; }
        public object pic_hash { get; set; }
        public int value { get; set; }
    }

    public class PersonId
    {
        public string name { get; set; }
        public string email { get; set; }
        public object phone { get; set; }
        public int value { get; set; }
    }

    public class OrgId
    {
        public string name { get; set; }
        public int people_count { get; set; }
        public string cc_email { get; set; }
        public int value { get; set; }
    }

    public class __invalid_type__0f3c7cb8eda95298a7e17cc4c5b6aea1fed99476
    {
        public int id { get; set; }
        public string name { get; set; }
        public string email { get; set; }
        public bool has_pic { get; set; }
        public string pic_hash { get; set; }
        public int value { get; set; }
    }

    public class AverageTimeToWon
    {
        public int y { get; set; }
        public int m { get; set; }
        public int d { get; set; }
        public int h { get; set; }
        public int i { get; set; }
        public int s { get; set; }
        public int total_seconds { get; set; }
    }

    public class Age
    {
        public int y { get; set; }
        public int m { get; set; }
        public int d { get; set; }
        public int h { get; set; }
        public int i { get; set; }
        public int s { get; set; }
        public int total_seconds { get; set; }
    }

    public class TimesInStages
    {
        public int pref_11 { get; set; }
        public int pref_12 { get; set; }
    }

    public class StayInPipelineStages
    {
        public TimesInStages times_in_stages { get; set; }
        public List<int> order_of_stages { get; set; }
    }

    public class data
    {
        public int id { get; set; }
        public int user_id { get; set; }
        public int person_id { get; set; }
        public int org_id { get; set; }
        public int stage_id { get; set; }
        public string title { get; set; }
        public int value { get; set; }
        public string currency { get; set; }
        public string add_time { get; set; }
        public string update_time { get; set; }
        public string stage_change_time { get; set; }
        public bool active { get; set; }
        public bool deleted { get; set; }
        public string status { get; set; }
        public DateTime next_activity_date { get; set; }
        public DateTime next_activity_time { get; set; }
        public int next_activity_id { get; set; }
        public int last_activity_id { get; set; }
        public DateTime last_activity_date { get; set; }
        public string lost_reason { get; set; }
        public string visible_to { get; set; }
        public DateTime close_time { get; set; }
        public int pipeline_id { get; set; }
        public DateTime won_time { get; set; }
        public DateTime lost_time { get; set; }
        public int products_count { get; set; }
        public int files_count { get; set; }
        public int notes_count { get; set; }
        public int followers_count { get; set; }
        public int email_messages_count { get; set; }
        public int activities_count { get; set; }
        public int done_activities_count { get; set; }
        public int undone_activities_count { get; set; }
        public int reference_activities_count { get; set; }
        public int participants_count { get; set; }
        public DateTime expected_close_date { get; set; }

        [JsonProperty(PropertyName = "f97e4841747d1fc621809ebbd0063f52f4eecf74")]
        public string f97e4841747d1fc621809ebbd0063f52f4eecf74 { get; set; }

        [JsonProperty(PropertyName = "052d4ce58edf16df90dab070591bd070f8ad88e7")]
        public string pref_052d4ce58edf16df90dab070591bd070f8ad88e7 { get; set; }

        [JsonProperty(PropertyName = "28fb37b17020f6dbd45ee92c94ae34811e94edd8")]
        public string pref_28fb37b17020f6dbd45ee92c94ae34811e94edd8 { get; set; }

        [JsonProperty(PropertyName = "a1032d833c7cba5a18ca09cd5418bfa3fd919137_currency")]
        public string a1032d833c7cba5a18ca09cd5418bfa3fd919137_currency { get; set; }

        [JsonProperty(PropertyName = "d7c2cb45d01c81159dd684111aa41bbbe5ce6db5_currency")]
        public string d7c2cb45d01c81159dd684111aa41bbbe5ce6db5_currency { get; set; }

        [JsonProperty(PropertyName = "d54e4d7b41a5bdfb2a29f7d57d8c1a4fd2ece115_currency")]
        public string d54e4d7b41a5bdfb2a29f7d57d8c1a4fd2ece115_currency { get; set; }

        [JsonProperty(PropertyName = "267976bb28be655ecf0bed63efbf4822b75aa0cf_currency")]
        public string pref_267976bb28be655ecf0bed63efbf4822b75aa0cf_currency { get; set; }

        [JsonProperty(PropertyName = "28e42860f533c6837224736257b963f3d8418ad1")]
        public string pref_28e42860f533c6837224736257b963f3d8418ad1 { get; set; }

        [JsonProperty(PropertyName = "211a67285816fc5179c248ef08e52000a2d1b15b_currency")]
        public string pref_211a67285816fc5179c248ef08e52000a2d1b15b_currency { get; set; }

        [JsonProperty(PropertyName = "1697fe1baa42670ccebdb863bc03729b56d8857d_currency")]
        public string pref_1697fe1baa42670ccebdb863bc03729b56d8857d_currency { get; set; }

        [JsonProperty(PropertyName = "4dc8edc835c39dbe422f3e1dd14f2fa3072866a8_currency")]
        public string pref_4dc8edc835c39dbe422f3e1dd14f2fa3072866a8_currency { get; set; }

        [JsonProperty(PropertyName = "54dce1f16a984fa7d62e9c31c4c09d8832c0e423_currency")]
        public string pref_54dce1f16a984fa7d62e9c31c4c09d8832c0e423_currency { get; set; }

        [JsonProperty(PropertyName = "8985469f141b2df5f3236947983feea015d24145")]
        public string pref_8985469f141b2df5f3236947983feea015d24145 { get; set; }

        [JsonProperty(PropertyName = "05a20487e9aa7a069f678aa2af92be5c75675416")]
        public string pref_05a20487e9aa7a069f678aa2af92be5c75675416 { get; set; }

        [JsonProperty(PropertyName = "275ac9794b3f274c1c61b47033b298d94a0125fd")]
        public string pref_275ac9794b3f274c1c61b47033b298d94a0125fd { get; set; }

        [JsonProperty(PropertyName = "24363789868fc8fada2400a3644cb11f7683df04")]
        public string pref_24363789868fc8fada2400a3644cb11f7683df04 { get; set; }

        [JsonProperty(PropertyName = "0670e6a82e67e19166f11c11778229d783395d0f")]
        public string pref_0670e6a82e67e19166f11c11778229d783395d0f { get; set; }

        [JsonProperty(PropertyName = "3b0feefce60bc79e9d9fb15bc20c57a05e0ebff8")]
        public string pref_3b0feefce60bc79e9d9fb15bc20c57a05e0ebff8 { get; set; }

        [JsonProperty(PropertyName = "d3748987f13e9dcdd60ffc6a567d3fd80431d77f")]
        public string d3748987f13e9dcdd60ffc6a567d3fd80431d77f { get; set; }

        [JsonProperty(PropertyName = "c4fbdf6431406db25949cdd90dfc91eeb5295165")]
        public string c4fbdf6431406db25949cdd90dfc91eeb5295165 { get; set; }

        [JsonProperty(PropertyName = "c357146d49b62fe08d34bbc98550b2b96431f773")]
        public int c357146d49b62fe08d34bbc98550b2b96431f773 { get; set; }

        [JsonProperty(PropertyName = "91bd07ed77e652cf6ac4a8b82c83e7e9932dbff3")]
        public string pref_91bd07ed77e652cf6ac4a8b82c83e7e9932dbff3 { get; set; }

        [JsonProperty(PropertyName = "235d277ff53390255c6c505a1634c88646fa3748")]
        public string pref_235d277ff53390255c6c505a1634c88646fa3748 { get; set; }

        [JsonProperty(PropertyName = "5c06d93f2b2ef968478235270d24c91b90cd857d")]
        public string pref_5c06d93f2b2ef968478235270d24c91b90cd857d { get; set; }

        [JsonProperty(PropertyName = "0b8350fa9af813124cf6d039ef2c932297fb1b49")]
        public string pref_0b8350fa9af813124cf6d039ef2c932297fb1b49 { get; set; }

        [JsonProperty(PropertyName = "547d1d42798933363859853e775d42974080a291")]
        public string pref_547d1d42798933363859853e775d42974080a291 { get; set; }

        [JsonProperty(PropertyName = "08610b715244a8ddfb3aeb1b4585c4487afd67bd")]
        public string pref_08610b715244a8ddfb3aeb1b4585c4487afd67bd { get; set; }

        [JsonProperty(PropertyName = "88ea9aadb49d3b4da1d17d2224e6d4b82a532a40")]
        public string pref_88ea9aadb49d3b4da1d17d2224e6d4b82a532a40 { get; set; }

        [JsonProperty(PropertyName = "49eba2416e95c88ac3ec279a1534884429872d21")]
        public string pref_49eba2416e95c88ac3ec279a1534884429872d21 { get; set; }

        [JsonProperty(PropertyName = "817f3b1c7ac9220fca3a9275926dabdfb914d885")]
        public string pref_817f3b1c7ac9220fca3a9275926dabdfb914d885 { get; set; }

        [JsonProperty(PropertyName = "206f941b5d992f43d5123b2a42c34db758ecc826")]
        public string pref_206f941b5d992f43d5123b2a42c34db758ecc826 { get; set; }

        [JsonProperty(PropertyName = "60a22e72ff54fa91b04376d6c373f35da19d94ba_currency")]
        public string pref_60a22e72ff54fa91b04376d6c373f35da19d94ba_currency { get; set; }

        [JsonProperty(PropertyName = "1326c4f84ec8611a202cc58a66d091617b910b4d")]
        public string pref_1326c4f84ec8611a202cc58a66d091617b910b4d { get; set; }

        [JsonProperty(PropertyName = "e13d704375bb3ee3c4523ba2e1e2f79779329615")]
        public string e13d704375bb3ee3c4523ba2e1e2f79779329615 { get; set; }

        [JsonProperty(PropertyName = "d9bc80190727512287a4951e160b0f81d8b8f227")]
        public string d9bc80190727512287a4951e160b0f81d8b8f227 { get; set; }

        [JsonProperty(PropertyName = "7cafce1dd6b89b14f69c23d9f1f56e8f67a8c00b")]
        public string pref_7cafce1dd6b89b14f69c23d9f1f56e8f67a8c00b { get; set; }

        [JsonProperty(PropertyName = "a451543d82d05cd98464d2c8b4141f95038e7e55")]
        public string a451543d82d05cd98464d2c8b4141f95038e7e55 { get; set; }

        [JsonProperty(PropertyName = "67fcb1f393b0bff6c83d43414cd432b695a4d9c2")]
        public string pref_67fcb1f393b0bff6c83d43414cd432b695a4d9c2 { get; set; }

        [JsonProperty(PropertyName = "3776ab9561a6f50d3becfd63aae885a3f9a6ce86")]
        public string pref_3776ab9561a6f50d3becfd63aae885a3f9a6ce86 { get; set; }

        [JsonProperty(PropertyName = "0f3c7cb8eda95298a7e17cc4c5b6aea1fed99476")]
        public __invalid_type__0f3c7cb8eda95298a7e17cc4c5b6aea1fed99476 pref_0f3c7cb8eda95298a7e17cc4c5b6aea1fed99476 { get; set; }

        [JsonProperty(PropertyName = "b5039fda6e758955f6aefcdf86bc654fd2e7d8bd")]
        public string b5039fda6e758955f6aefcdf86bc654fd2e7d8bd { get; set; }

        [JsonProperty(PropertyName = "5c194672d7994903077944047cec441673e7b1e6")]
        public string pref_5c194672d7994903077944047cec441673e7b1e6 { get; set; }

        [JsonProperty(PropertyName = "f04a5560d8e408620c633230e141bf16a6874b30")]
        public double f04a5560d8e408620c633230e141bf16a6874b30 { get; set; }

        [JsonProperty(PropertyName = "2502aab37117657e5fe04c2ce688b80b8e7aa17f")]
        public double pref_2502aab37117657e5fe04c2ce688b80b8e7aa17f { get; set; }

        [JsonProperty(PropertyName = "ef704e3b5bc356ebceb81f00628e5813b8ecf2e5")]
        public string ef704e3b5bc356ebceb81f00628e5813b8ecf2e5 { get; set; }

        [JsonProperty(PropertyName = "f4aaa546fb4bc886aed645789ccaaebad4fe60d8")]
        public string f4aaa546fb4bc886aed645789ccaaebad4fe60d8 { get; set; }

        [JsonProperty(PropertyName = "5144ea977b5678f238d5aa11418510c18efcf4fc")]
        public string pref_5144ea977b5678f238d5aa11418510c18efcf4fc { get; set; }

        [JsonProperty(PropertyName = "eefb3dbc53aa0d99ef0a57a864af562f6f6de49a")]
        public string pref_eefb3dbc53aa0d99ef0a57a864af562f6f6de49a  { get; set; }

        public int stage_order_nr { get; set; }
        public string person_name { get; set; }
        public string org_name { get; set; }
        public string next_activity_subject { get; set; }
        public string next_activity_type { get; set; }
        public string next_activity_duration { get; set; }
        public string  next_activity_note { get; set; }
        public string formatted_value { get; set; }
        public int weighted_value { get; set; }
        public string formatted_weighted_value { get; set; }
        public string rotten_time { get; set; }
        public string owner_name { get; set; }
        public string cc_email { get; set; }
        public bool org_hidden { get; set; }
        public bool person_hidden { get; set; }
        public AverageTimeToWon average_time_to_won { get; set; }
        public int average_stage_progress { get; set; }
        public Age age { get; set; }
        public StayInPipelineStages stay_in_pipeline_stages { get; set; }
        public string last_activity { get; set; }
        public string next_activity { get; set; }
    }

    public class AdditionalData
    {
        public string dropbox_email { get; set; }
    }

    public class __invalid_type__509734
    {
        public int id { get; set; }
        public string name { get; set; }
        public string email { get; set; }
        public bool has_pic { get; set; }
        public object pic_hash { get; set; }
    }

    public class User
    {
        public __invalid_type__509734 pref_509734 { get; set; }
    }

    public class __invalid_type__22964
    {
        public int id { get; set; }
        public string name { get; set; }
        public int people_count { get; set; }
        public string cc_email { get; set; }
    }

    public class Organization
    {
        public __invalid_type__22964 pref_22964 { get; set; }
    }

    public class __invalid_type__30607
    {
        public int id { get; set; }
        public string name { get; set; }
        public string email { get; set; }
        public object phone { get; set; }
    }

    public class Person
    {
        public __invalid_type__30607 pref_30607 { get; set; }
    }

    public class RelatedObjects
    {
        public User user { get; set; }
        public Organization organization { get; set; }
        public Person person { get; set; }
    }

    public class RootObject
    {
        public bool success { get; set; }
        public List<data> data { get; set; }
        public AdditionalData additional_data { get; set; }
        public RelatedObjects related_objects { get; set; }
    }
}
  1. Process everything in different classes in order to calculate and print results. (this code is irrelevant to the question)

When debugging I see that the request is correct, the returned data is exactly what I expect (as shown in step three) and during deserializing the buffer is filled with said data, but it does not fill the returnvar class with the expected values:

Contents of <code>returnvar</code> class

I have no clue why this is happening, after all I have two other interactions with the PipeDrive API that use the exact same methods, have a very similar implementation, and work just fine.

I also noticed that PipeDrive uses randomized strings as identification for custom fields. Some of them tend to start with a number, which means it's not possible to create a variable with the same name (hence the pref_ and __invalid_type__ prefixes). I've attempted to work around this by setting JsonProperty. Could this be the problem and does my workaround not suffice?

1

There are 1 answers

1
Chavez On BEST ANSWER

I'm late, but it seems fair to post the answer for those that deal with a similar problem: turns out it was a rookie mistake after all. The answer to this mistake was that I tried to fill out the data class rather than the RootObject, which would never work given the hierarchy.