Member 8087552 Ответов: 1

У меня есть строка json, которую я пытаюсь поместить в класс, чтобы я мог перебирать класс и обрабатывать данные


Это должно быть простой проблемой.
У меня есть класс данных и данные json, но я не могу найти способ превратить strong в объект json.
Мы будем признательны за любую помощь.
Вот эта строка
[{"CampaignID":"F1","Customer":"cust1","Language":"E","Content":[
	{
"Type":"Email",
"Campaign":"t1",
"Card_type":"xxxxx",
"Last4":"xxxx",
"Name":"Rick",
"EmailAddress":"xxxxx@hotmail.com"
}
]},{"CampaignID":"F1","Customer":"cust1","Language":"E","Content":[
	{
"Type":"Email",
"Campaign":"t1",
"Card_type":"xxxxxxxx",
"Last4":"xxxx",
"Name":"Donna",
"EmailAddress":"xxxxx@hotmail.com"
}
]},{"CampaignID":"t1","Customer":"f1","Language":"E","Content":[
	{
"Type":"Email",
"Campaign":"t1",
"Card_type":"xxxxxx",
"Last4":"xxxx",
"Name":"Chelsea Bun",
"EmailAddress":"xxxxxxxxx-poo@hotmail.com"
}
]}]


А вот и занятия

public class clsEmail
{

    public string CompanyName { get; set; } = "";
    public string Campaign { get; set; } = "";
    public string CampaignID { get; set; } = "";
    public string Customer { get; set; } = "";

    public string Language { get; set; } = "";
    public IList<Content> Content { get; set; }

}
public class Content
{
    public string Type { get; set; }
    public string Campaign { get; set; }
    public string Card_type { get; set; }
    public string Last4 { get; set; }
    public string Name { get; set; }
    public string EmailAddress { get; set; }
}


Что я уже пробовал:

Я попытался преобразовать объект в json, циклически проходя через список, а также массив

MadMyche

Вы должны просто уметь это делать DeSerialize этот... но я не могу сказать, где вы получаете clsEmail и Название организации имена

1 Ответов

Рейтинг:
0

RickZeeland

Попробуйте этот код, сгенерированный JSON Utils: генерация C#, VB.Net, таблица SQL, Java и PHP из JSON[^]

public class Content
 {
     public string Type { get; set; }
     public string Campaign { get; set; }
     public string Card_type { get; set; }
     public string Last4 { get; set; }
     public string Name { get; set; }
     public string EmailAddress { get; set; }
 }

 public class Example
 {
     public string CampaignID { get; set; }
     public string Customer { get; set; }
     public string Language { get; set; }
     public IList<Content> Content { get; set; }
 }


Тогда вы должны быть в состоянии десериализоваться следующим образом:
var obj = File.ReadAllText("Testdata.json");
List<Example> jsonResults = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Example>>(obj);

foreach (var item in jsonResults)
{
    Debug.Print(item.Customer);

    foreach (var content in item.Content)
    {
        Debug.Print("content.Name = " + content.Name);
    }
}


Member 8087552

С 1 незначительной модификацией это решило мою проблему. СПАСИБО. Это сводило меня с ума.
Поскольку у всех уже был текст в виде строки, мне не нужна была ваша строка var obj.
Еще раз спасибо за вашу помощь.

RickZeeland

Рад, что это сработало, вы можете отметить его как "принятое решение".