2012-04-01 11 views
2

ich JSON schicke:Einstellung JSON Objektnamen in WCF REST

[ 
{ 
    "Description": "A kud ces bolje", 
    "ItemID": 1, 
    "Name": "Banane", 
    "NewPrice": 91.99, 
    "OldPrice": 161.99, 
    "SaleEnds": "9/1/2013", 
    "SaleStarts": "9/1/2012" 
}, 
{ 
    "Description": "Rastu na stablu", 
    "ItemID": 2, 
    "Name": "Kruske", 
    "NewPrice": 93.99, 
    "OldPrice": 117.99, 
    "SaleEnds": "9/1/2013", 
    "SaleStarts": "9/1/2012" 
}, 
] 

Aber ich möchte einen Namen haben, so dass es wie

"Some_Name":[ 
{ 
    "Description": "A kud ces bolje", 
    "ItemID": 1, 
    "Name": "Banane", 
    "NewPrice": 91.99, 
    "OldPrice": 161.99, 
    "SaleEnds": "9/1/2013", 
    "SaleStarts": "9/1/2012" 
}, 
{ 
    "Description": "Rastu na stablu", 
    "ItemID": 2, 
    "Name": "Kruske", 
    "NewPrice": 93.99, 
    "OldPrice": 117.99, 
    "SaleEnds": "9/1/2013", 
    "SaleStarts": "9/1/2012" 
}, 
] 

sieht kehre ich List<Item>:

[OperationContract] 
[WebGet(UriTemplate = "/items/{id}", ResponseFormat = WebMessageFormat.Json)] 
List<ItemService> GetItems(string id); 

und Item ist:

[DataContract] 
public class ItemService 
{ 
    [DataMember] 
    public int ItemID { get; set; } 

    [DataMember] 
    public string Name { get; set; } 

    [DataMember] 
    public string Description { get; set; } 

    [DataMember] 
    public Decimal OldPrice { get; set; } 

    [DataMember] 
    public Decimal NewPrice { get; set; } 

    [DataMember] 
    public string SaleStarts { get; set; } 

    [DataMember] 
    public string SaleEnds { get; set; } 
} 

Antwort

3

Sie können die JSon-Daten nicht selbst benennen. Sie benötigen eine kleine Wrapperklasse mit dem folgenden Namen:

Wickeln Sie Ihre Liste in den Wrapper und geben Sie den Wrapper zurück.

Das resultierende JSon würde somehting wie:

{ 
"Some_Name":[ 
{ 
    "Description": "A kud ces bolje", 
    "ItemID": 1, 
    "Name": "Banane", 
    "NewPrice": 91.99, 
    "OldPrice": 161.99, 
    "SaleEnds": "9/1/2013", 
    "SaleStarts": "9/1/2012" 
}, 
{ 
    "Description": "Rastu na stablu", 
    "ItemID": 2, 
    "Name": "Kruske", 
    "NewPrice": 93.99, 
    "OldPrice": 117.99, 
    "SaleEnds": "9/1/2013", 
    "SaleStarts": "9/1/2012" 
}, 
]}