2015-11-03 27 views
0

這是我的web API方法。如何在Windows Store應用程序中反序列化json對象

public class EmployeeController : ApiController 
{ 
    employee[] employee = new employee[] 
    { 
     new employee{Employee_Id=1,Employee_Name="Richa",Employee_Address="Noida",Employee_Contact=12567,Employee_Salary=5000}, 
     new employee{Employee_Id=2,Employee_Name="Megha",Employee_Address="Delhi",Employee_Contact=98754,Employee_Salary=5435}, 
     new employee{Employee_Id=3,Employee_Name="Gaurav",Employee_Address="Noida",Employee_Contact=33333,Employee_Salary=4233}, 
     new employee{Employee_Id=4,Employee_Name="Suyash",Employee_Address="Delhi",Employee_Contact=5555,Employee_Salary=2342}, 
     new employee{Employee_Id=5,Employee_Name="Manish",Employee_Address="Noida",Employee_Contact=84576,Employee_Salary=4555}, 
     new employee{Employee_Id=6,Employee_Name="Manish",Employee_Address="Noida",Employee_Contact=84576,Employee_Salary=4555}, 
     new employee{Employee_Id=7,Employee_Name="Ram",Employee_Address="Delhi",Employee_Contact=6456,Employee_Salary=4555}, 
     new employee{Employee_Id=8,Employee_Name="Rajesh",Employee_Address="Gaziyabad",Employee_Contact=8865,Employee_Salary=4555}, 
     new employee{Employee_Id=9,Employee_Name="Deepak",Employee_Address="Hapur",Employee_Contact=34242,Employee_Salary=4555}, 
     new employee{Employee_Id=10,Employee_Name="Naveen",Employee_Address="Gaziyabad",Employee_Contact=86756,Employee_Salary=4555}, 
     new employee{Employee_Id=11,Employee_Name="Rakesh",Employee_Address="Noida",Employee_Contact=8564,Employee_Salary=4555} 
    }; 
    public IEnumerable<employee> GetAllEmployee() 
    { 
     return employee; 
    } 

消耗在Windows商店應用

private HttpClient httpClient; 

    public TestPage() 
    { 
     this.InitializeComponent(); 
     httpClient = new HttpClient(); 
     httpClient.BaseAddress = new Uri("http://localhost:52333/"); 
     httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
     // Limit the max buffer size for the response so we don't get overwhelmed 
     httpClient.MaxResponseContentBufferSize = 266000; 
    } 
    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     GetEmployee(); 
    } 
    private void Rectangle_Tapped(object sender, TappedRoutedEventArgs e) 
    { 
     // easingAnimation.Begin(); 
    } 
    private async void GetEmployee() 
    { 
     var response = await httpClient.GetAsync("api/employee"); 
     if (response.IsSuccessStatusCode) 
     { 
      var employee = await response.Content.ReadAsStringAsync(); 
      List<Test> result = JsonConvert.DeserializeObject<List<Test>>(employee); 

      //var emp = JsonArray.Parse(employee); 
      //var qry = from m in emp 
      //   select new 
      //   { 
      //    Emp_Id = m.GetObject()["Employee_Id"].GetNumber(), 
      //    Emp_Name = m.GetObject()["Employee_Name"].GetString(), 
      //    Emp_Address = m.GetObject()["Employee_Address"].GetString(), 
      //    Emp_Contact = m.GetObject()["Employee_Contact"].GetNumber(), 
      //    Emp_Salary = m.GetObject()["Employee_Salary"].GetNumber() 
      //   }; 
      // employee_details.DataContext = qry; 
     } 
    } 
} 

以上,但所有的領域有像空默認值和0 要我在客戶端中添加從靜止服務的同一類引用的員工?

回答

0

你的類 「測試」 應具有相同的屬性, 「員工」 類:

EMPLOYEE_ID,Employee_Name,Employee_Address,Employee_Contact, Employee_Salary

當您檢索ReadAsStringAsync值()您將檢索字符串,以便字符串需要包含來自異步調用的字符串中的Json數據。

你需要檢查的調試器,如果:

var employee = await response.Content.ReadAsStringAsync(); 

員工有什麼價值?

如果是,那麼你只是反序列化測試:

List<Test> result = JsonConvert.DeserializeObject<List<Test>>(employee);