Класс JSON со списком другого класса - PullRequest
1 голос
/ 13 марта 2019

Я постараюсь объяснить это как можно лучше.У меня есть класс с именем Prospect, который содержит строки электронной почты, компании, имени, фамилии, телефона.

У меня есть требование для вывода информации Prospect в формате JSON в формате

[
   {"email":"test@test.com",
      "properties":[
      {
        "property":"company",
        "value": "Company Name"
      },
        "property":"firstname",
        "value":"John"
      },
        "property":"surname",
         "value":"Smith"
      },
        "property":"phone",
        "value":"01234567891"
      }]
  }
]

Iнужно вывести JSON из всех перспектив, которые я фиксирую.Я попробовал это, создав класс Customer:

public class Customer
{
    public string email { get; set; }
    public List<Property> properties { get; set; }

}

и класс Property:

public class Property
{
    public string property { get; set; }
    public string value { get; set; }
}

Я не могу за всю жизнь получить результат, которого я добиваюсь.Я думаю, что это список недвижимости в классе клиентов.Если я изменю список на строку и определю здесь только одно значение, вывод будет в порядке.

Пожалуйста, помогите: (

Ответы [ 2 ]

0 голосов
/ 16 марта 2019

[решено]

Спасибо всем, кто предоставил комментарии.Ваше руководство помогло мне решить мою проблему.

        public class Customer
    {
        public string email { get; set; }
        public List<Property> properties { get; set; }
    }

    public class Property
    {
        public string property { get; set; }
        public string value { get; set; }
    }



    private void button1_Click(object sender, EventArgs e)
    {


        Customer _c = new Customer();
        _c.email = email.Text;
        _c.properties = new List<Property>();
        _c.properties.Add(new Property{ property = "company", value = company.Text });
        _c.properties.Add(new Property { property = "website", value = website.Text });
        _c.properties.Add(new Property { property = "firstname", value = firstname.Text });
        _c.properties.Add(new Property { property = "lastname", value = lastname.Text });
        _c.properties.Add(new Property { property = "phone", value = phone.Text });

        string json = JsonConvert.SerializeObject(_c, Formatting.Indented);
        outputBox.Text = json;

    }
0 голосов
/ 13 марта 2019

Этот код работает:

public class Property
    {
      public string property { get; set; }
      public string value { get; set; }
    }

    public class Customer
    {
      public string email { get; set; }
      public List<Property> properties { get; set; }

    }

    static void Main(string[] args)
    {
      string JSON = @"[
   {""email"":""test @test.com"",
      ""properties"":[
      {
        ""property"":""company"",
        ""value"": ""Company Name""
      },
       { ""property"":""firstname"",
        ""value"":""John""
      },
       { ""property"":""surname"",
         ""value"":""Smith""
      },
       { ""property"":""phone"",
        ""value"":""01234567891""
      }]
  }
]
";
      Customer[] obj = JsonConvert.DeserializeObject<Customer[]>(JSON);

    }

Обратите внимание: 1. Я должен добавить пропущенные открывающие { скобки к элементам свойств.

...