Определить вложенный формат JSON - PullRequest
0 голосов
/ 27 февраля 2019

Я хочу подключить свое приложение для захвата проспектов к HubSpot через их API для создания контактов.У меня есть список объектов Prospect, которые я сериализовал в JSON, что приводит к следующему:

[{
    "CompanyName": "Test",
    "Website": "www.test.com",
    "FirstName": "Carl",
    "LastName": "Swann",
    "JobTitle": "Dr",
    "Phone": "0789654321",
    "Email": "twst@email.com",
    "Products": "Khaos Control Hybrid",
    "Notes": "Here are the notes ",
    "ContactOwner": "cswann@khaoscontrol.com",
    "ShowName": "Spring Fair"
}]

Как мне убедиться, что имеющаяся у меня информация соответствует требуемой структуре HSON-HotSpot JSON здесь:

{
"email": "testingapi1s@hubspot.com",
"properties": [
  {
    "property": "firstname",
    "value": "Harper"
  },
  {
    "property": "lastname",
    "value": "Wolfberg"
  },
  {
    "property": "website",
    "value": "http://hubspot.com"
  },
  {
    "property": "company",
    "value": "HubSpot"
  },
  {
    "property": "phone",
    "value": "555-122-2323"
  },
  {
    "property": "address",
    "value": "25 First Street"
  },
  {
    "property": "city",
    "value": "Cambridge"
  },
  {
    "property": "state",
    "value": "MA"
  },
  {
    "property": "zip",
    "value": "02139"
  }
]

1 Ответ

0 голосов
/ 27 февраля 2019

Пожалуйста, выполните эти шаги 1. Сериализуйте источник json в список 2.

public class Destination
    {
        public string email { get; set; }   
        public List<PropertyDescription> properties { get; set; }
    }
public class PropertyDescription
    {
            public string property { get; set; }
            public object value { get; set; }   
    }
List<Source> sources = serialize “sourceJson”;
       var destination=new List<Destination>();
       foreach (var source in sources)
       {
           var dest = new Destination();
           foreach (var property in source.GetType().GetProperties())
           {
               var propertValue = property.GetValue(source);
               dest.properties.Add(new PropertyDescription
               {
                   property = property.Name,
                   value = propertValue
               });
           }
           destination.Add(dest);
        }

3.Desirialize пункт назначения будет близок к вашему ожидаемому результату

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...