2015-11-30 25 views
5

Birkaç çalışanı oluşturan, bir çalışan listesine ekleyen ve daha sonra çalışan listesini istekte döndüren bir EmployeeController'da aşağıdaki örnek kodum var. Koddan döndürülen JSON, Çalışanları bir kök düğümü olarak içerir. Çalışanları JSON dizisi ile parse etmeyi denediğimde, JSON dizisini Employees özelliği olmayan bir JSON dizisine döndürmem gerekiyor, çünkü dizeyi içermeyen dizeyi el ile yeniden biçimlendirmediğim sürece hatalar alıyorum.WebAPI Kök düğümü olmayan dönüş JSON dizisi

public class Employee 
{ 
    public int EmployeeID { get; set; } 
    public string Name { get; set; } 
    public string Position { get; set; } 
} 

public class EmployeeList 
{ 
    public EmployeeList() 
    { 
     Employees = new List<Employee>(); 
    } 
    public List<Employee> Employees { get; set; } 
} 


public class EmployeeController : ApiController 
{ 
    public EmployeeList Get() 
    { 
     EmployeeList empList = new EmployeeList(); 
     Employee e1 = new Employee 
     { 
      EmployeeID = 1, 
      Name = "John", 
      Position = "CEO" 
     }; 
     empList.Employees.Add(e1); 
     Employee e2 = new Employee 
     { 
      EmployeeID = 2, 
      Name = "Jason", 
      Position = "CFO" 
     }; 
     empList.Employees.Add(e2); 

     return empList; 
    } 
} 

Bu benim kontrolör benim gibi

{ 
    "Employees": 
     [ 
      {"EmployeeID":1,"Name":"John","Position":"CEO"},  
      {"EmployeeID":2,"Name":"Jason","Position":"CFO"} 
     ] 
} 

Bu benim

[ 
    {"EmployeeID":1,"Name":"John","Position":"CEO"},  
    {"EmployeeID":2,"Name":"Jason","Position":"CFO"} 
] 

Herhangi bir yardım döndü gerek JSON sonuç çok takdir edilir çağrıldığında almak JSON sonucudur WEBAPI için yeni ve JSON sonuçları ayrıştırma

+0

? API'yi çağıran kod nedir? Varsayılan davranışla çok fazla uğraşmak yerine istemci kodunu ayrıştırmak için daha fazla çaba harcadım, API kodunuz oldukça basit görünüyor, bu şekilde devam ediyorum. – Taegost

cevap

9

Bu, aslında bir 0 döndürmediğiniz için olurama içinde bir List<Employee> olan bir nesne (EmployeeList). Bir liste ama içinde gömülü liste ile bir nesne dönen değiliz

2

o çevredeki sınıf olmadan Employee[] (Çalışan dizisi) ya da sadece List<Employee> dönmek için
Değişim. için yöntemin bir imza değiştirin:

public List<Employee> Get() 

Ve sonra sadece listesini döndürür:

Eğer alıyorsanız hangi hataları
return empList.Employees;