2015-07-17 2 views
0

я класс, порожденный от JSON как это:Получение членом JSON данных из класса

[DataContract] 
public class Issue 
{ 
    [DataMember(Order = 0)] 
    public string expand { get; set; } 
    [DataMember(Order = 1)] 
    public string id { get; set; } 
    [DataMember(Order = 2)] 
    public string self { get; set; } 
    [DataMember(Order = 3)] 
    public string key { get; set; } 
} 

[DataContract] 
public class search 
{ 
    [DataMember(Order = 0)] 
    public string expand { get; set; } 
    [DataMember(Order = 1)] 
    public int startAt { get; set; } 
    [DataMember(Order = 2)] 
    public int maxResults { get; set; } 
    [DataMember(Order = 3)] 
    public int total { get; set; } 
    [DataMember(Order = 4)] 
    public IList<Issue> issues { get; set; } 
} 

Я хочу получить доступ к «идентификатор», и я пытаюсь получить так:

jiraIssues.IssueKey = item.issues.key ?? string.Empty; 

ошибка получения "не содержит определения для" ключа ". Пожалуйста, проверьте сборку ref

« Товар »я получаю как показано ниже:

foreach (search item in issuesearched) 
{ 
    JiraIssues jiraissues = new JiraIssues(); 
    SetIssueDetails(item, jiraissues, priorities, statuses, resolution, issuetypes); 
} 

Есть ли другой способ доступа к «ключу»? Любое предложение, где я ошибаюсь?

+1

Я думаю, что мы должны видеть, как 'issues' объявлен. Является ли это списком, единственным полем/свойством? Если это список, вам нужно указать индекс или ключ. – MFatihMAR

+0

класс, созданный с помощью 'JSON' с атрибутом DataContract? –

ответ

1

вопросы список , так что вы должны сделать:

s.issues [0] .key;

(если вы хотите, чтобы установить ключ для первого элемента не установлен ключ для других элементов;.)

дополнительный образец:

public class Issue 
{       
    public string key { get; set; } 
} 


public class search 
{ 
    public IList<Issue> issues { get; set; } 
} 

private static void Main(string[] args) { 

    search s = new search(); 

    s.issues.Add(new Issue()); // YOU HAVE THREE ISSUES 
    s.issues.Add(new Issue()); 
    s.issues.Add(new Issue()); 


    var x=s.issues[0].key; // YOU ACCESS 1st one 
    x = s.issues[2].key; // YOU ACCESS 3rd one (zero based) 


} 
+0

Жаль, что я не получил. в моем коде для ключа, порядок равен 3, так что я должен делать, s.issues [3] .key; ? – AskMe

+0

№. у вас есть n проблем. вам нужен указатель вопроса, который вы хотите установить. это не имеет никакого отношения к порядку. – Chaka

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