WebAPI конвертирует вложенную JSON в строку - PullRequest
0 голосов
/ 28 января 2020

У меня несколько сложный JSON, входящий в WEBAPI -

{
    "TypeInq": "ResidentialStart",
    "DataInq":  {
        "Account_ID": "2491054657",
        "Premise_ID": "5394660000",
        "DogWarning": "N",
        "ServiceStartDate": "2020-01-10",
        "PrimaryPerson": {
            "PersonId": "0357801000",
            "POS_ID_Required": "Y",
            "LastName": "HOGAN",
            "FirstName": "BARRY L",
            "Username": "garmin789@gmail.com",
            "EmailList": [
                {
                    "Email": "garmin789@gmail.com",
                    "EmailType": "PERSONAL EMAIL",
                    "PrimaryEmailFlag": "Y",
                    "ActionFlag": "ADD",
                    "ActiveInactiveFlag": "C1AC"
                }
            ],
            "DateOfBirth": "1977-11-04",
            "CurrentAddress": {
                "AddressLine1": "1923 Chestnut Dr",
                "City": "Pleasant hill ",
                "State": "MO",
                "Zip": "64080"
            },
            "MailingAddress": {
                "PremiseID": "5394660000"
            }
        },
        "AdditionalPersons": [
            {
                "PersonId": "0357801000",
                "POS_ID_Required": "Y",
                "LastName": "HOGAN",
                "FirstName": "BARRY L",
                "Username": "garmin789@gmail.com",
                "EmailList": [
                    {
                        "Email": "garmin789@gmail.com",
                        "EmailType": "PERSONAL EMAIL",
                        "PrimaryEmailFlag": "Y",
                        "ActionFlag": "ADD",
                        "ActiveInactiveFlag": "C1AC"
                    }
                ],
                "DateOfBirth": "1977-11-04",
                "CurrentAddress": {
                    "AddressLine1": "1923 Chestnut Dr",
                    "City": "Pleasant hill ",
                    "State": "MO",
                    "Zip": "64080"
                },
                "MailingAddress": {
                    "PremiseID": "5394660000"
                }
            }
        ]
    }
}

Так что часть 'TypeInq' в порядке Я обрабатываю это. Не уверен на 100%, как подойти к этому в C#, но пробовал это там, где в объекте «Base» просто есть строки для «TypeInq» и «DataInq»

 [HttpPost]
        [Route("CreateInquiry")]
        public IHttpActionResult CreateNewInquiry(Base inqBasic)
        {

            string retval = "";
            try
            {


            //return Ok();

               InquiryService svc = new InquiryService();
               retval = svc.CreateInquiry(inqBasic);
            }
            catch (Exception ex)
            {
                Logger.LogEx(ex);
                return WebApiConfig.ExceptionResponse(this);
            }
            return Ok(retval);

        }

1 Ответ

1 голос
/ 28 января 2020

Вы можете напрямую десериализовать входящий объект json. Затем просто укажите соответствующее свойство, значение которого вы хотите.

object somenewobject = new JavaScriptSerializer (). Deserialize (response.Data.ToString ());

...