2015-01-19 18 views
-3

В основном я пытаюсь разобрать этот объект JSON и получить EmailAddress, OldEmailAddress, государство и ListIDJSON синтаксический анализ в C#

{ 
    "ListID":"2ccf66750eb1b889", 
    "Events":[ 
    { 
     "Type":"Update", 
     "Date":"2015-01-19 10:50:00", 
     "EmailAddress":"[email protected]", 
     "Name":"Lei", 
     "CustomFields":[ 
     { 
      "Key":"General School Information","Value":"Centennial (W)"}, 
      {"Key":"Board Information","Value":"Alert: Special Announcements"}, 
     ], 
     "State":"Active", 
     "OldEmailAddress":"[email protected]" 
    }] 
} 

Вот мой класс структура

public class cmupdate 
{ 
    public string ListID { get; set; } 
    public List<Event> Events { get; set; } 
} 

public class CustomField 
{ 
    public string Key { get; set; } 
    public string Value { get; set; } 
} 

public class Event 
{ 
    public string Type { get; set; } 
    public string Date { get; set; } 
    public string EmailAddress { get; set; } 
    public string Name { get; set; } 
    public List<CustomField> CustomFields { get; set; } 
    public string State { get; set; } 
    public string OldEmailAddress { get; set; } 
} 

Вот как я читал json через HTTP POST-запрос.

var reader = new StreamReader(Request.InputStream); 
var json = reader.ReadToEnd(); 

cmupdate events = JsonConvert.DeserializeObject<cmupdate>(json); 

я могу получить ListID, но возникли проблемы gettting данные о событиях, как OldEmailAddress, EmailAddress, государства и типа.

я могу получить ListID

string listid = events.ListID; 

, но как я могу получить другие свойства, такие как EmailAdress, который попадает под список событий? Спасибо заранее.

+0

Какая у вас проблема, точно? Ошибки? Исключения? Можете ли вы привести пример того, что не работает? – Cameron

+0

Можете ли вы расширить «проблемы»? Вы получаете исключение или нет данных? –

+0

Я могу получить в ListID с event.ListID, но как получить значение для EmailAddress и т. Д. – riz

ответ

-1

Спасибо, что заставляете меня думать больше. Вот мое решение. Пожалуйста, дайте мне знать, если я ошибаюсь, или есть лучший способ.

var reader = new StreamReader(Request.InputStream); 
var json = reader.ReadToEnd(); 
cmupdate u = JsonConvert.DeserializeObject<cmupdate>(json); 

string output = ""; 
output = "ListID: " + u.ListID; 
List<Event> t = u.Events; 
output += "OldEmailAddress:" + t[0].OldEmailAddress + " EmailAddress:" + t[0].EmailAddress; 
+0

Итак, что же это ответ? Как использовать цикл for? – EZI

+0

@ EZI вы пишите. Вначале у меня был провал, но он больше не нужен. Благодарю. – riz

Смежные вопросы