2017-03-28 2 views
0

json 문자열을 비 직렬화하려고하지만 bool 값만 내 클래스에 추가됩니다. 여기서 배열 값은 항상 null입니다.C# 하나의 배열과 하나의 bool 값을 사용하여 Json 문자열을 비 직렬화

  public static EmployeeInformation GetEngineerAdditionInfo(ProjectUserRoles role) 
      { 
        EmployeeInformation engineerAdditionalInfo = new EmployeeInformation(); 
        var apiBaseUri = string.Empty; 
        apiBaseUri = "https:example.com"; 
        Uri newUri = new Uri(apiBaseUri); 
        var httpWebRequest = (HttpWebRequest)WebRequest.Create(newUri); 
        httpWebRequest.Method = WebRequestMethods.Http.Get; 
        httpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"; 
        using (var response = (HttpWebResponse)httpWebRequest.GetResponse()) 
        { 
         using (var reader = new StreamReader(response.GetResponseStream())) 
         { 
          string line = reader.ReadToEnd(); 

          engineerAdditionalInfo = JsonConvert.DeserializeObject<EmployeeInformation>(line); 
         } 
        } 
       } 

그리고 내 클래스는 다음과 같이

public class EmployeeInformation 
    { 
     public bool IsSuccess { get; set; } 

     List<EmployeeBasicDetails> EmployeeBasicDetails { get; set; } 
    } 

    public class EmployeeBasicDetails 
    { 
     public int UserId { get; set; } 

     public string EmployeeId { get; set; } 

     public string EmailId { get; set; } 

     public string EmployeeName { get; set; } 
    } 

내 JSON 문자열이 될 것입니다,

{"IsSuccess":true,"EmployeeBasicDetails":[{"UserId":124,"EmployeeId":"SS124","EmailId":"[email protected]","EmployeeName":"Example"},{"UserId":125,"EmployeeId":"SS125","EmailId":"[email protected]","EmployeeName":"Example"},{"UserId":126,"EmployeeId":"SS126","EmailId":"[email protected]","EmployeeName":"Example"},{"UserId":127,"EmployeeId":"SS127","EmailId":"[email protected]","EmployeeName":"Example"}]} 

내가 놓친나요? 또는 json 문자열에서 배열 목록을 가져 오는 다른 방법이 있습니까?

미리 감사드립니다.

Dinesh.

+2

EmployeeInformation의 EmployeeBasicDetails 속성이 공개되지 않습니다. 이것이 문제인지 확인하십시오. – owczarek

+0

고마워요. 내 하루를 구 했어. :) 그 일 –

답변

1

이건 그냥 추측이지만, 난 당신이 공중에 EmployeeBasicDetails을 설정하는 것을 잊었다 생각 :

public class EmployeeInformation 
{ 
    public bool IsSuccess { get; set; } 

    public List<EmployeeBasicDetails> EmployeeBasicDetails { get; set; } 
} 

public class EmployeeBasicDetails 
{ 
    public int UserId { get; set; } 

    public string EmployeeId { get; set; } 

    public string EmailId { get; set; } 

    public string EmployeeName { get; set; } 
} 

는 희망이 도움이!