2

Ich verwende JavaScriptSerializer.Deserialize, um JSON aus dem Youtubeapi zu deserialisieren. Ich habe Klassen die Datenstruktur des JSON zu implementieren, die wie folgt aussieht:Wie kann ich ein JSON-Feld mit dem Namen "default" in JSON deserialisieren? C#

{ 
"kind": "youtube#videoListResponse", 
"etag": "\"kiOs9cZLH2FUp6r6KJ8eyq_LIOk/9dlz1IIYCkI6XFpNy28ZfHloSKY\"", 
"pageInfo": { 
    "totalResults": 1, 
    "resultsPerPage": 1 
}, 
"items": [ 
    { 
    "kind": "youtube#video", 
    "etag": "\"kiOs9cZLH2FUp6r6KJ8eyq_LIOk/xNIcXxr4UjrZ1ZnL0lGaAAqLc4k\"", 
    "id": "r8Ni2m3ro30", 
    "snippet": { 
    "publishedAt": "2013-09-25T17:49:08.000Z", 
    "channelId": "UCeq7mOAcfee86UYyG8SCgvw", 
    "title": "Long-Lasting Residual with Capreno Corn Herbicide", 
    "description": "Watch growers talk about their experience with Capreno® corn herbicide's long-lasting residual. During unforgiving weather conditions, Capreno postemergence herbicide delivers season-long control of the toughest weeds to deliver an amazing end-of-season clean.", 
    "thumbnails": { 
    "default": { 
     "url": "https://i.ytimg.com/vi/r8Ni2m3ro30/default.jpg", 
     "width": 120, 
     "height": 90 
    }, 
    "medium": { 
     "url": "https://i.ytimg.com/vi/r8Ni2m3ro30/mqdefault.jpg", 
     "width": 320, 
     "height": 180 
    }, 
    "high": { 
     "url": "https://i.ytimg.com/vi/r8Ni2m3ro30/hqdefault.jpg", 
     "width": 480, 
     "height": 360 
    } 
    } 
    } 
    } 
] 
} 

Das einzige Problem ist die Thumbnails. Ich habe die folgenden Klassen gemacht:

public class Thumbnails 
{ 
    public Thumbnail default { get; set; } 
    public Thumbnail medium { get;set; } 
    public Thumbnail high { get;set; } 
} 

public class Thumbnail 
{ 
    public string url { get; set; } 
    public int width { get;set; } 
    public int height { get; set; } 
} 

aber in C# kann ich keinen Parameter "Standard" nennen. Ich kann den JSON jedoch nicht ändern, und ich brauche diesen Standard. Es wird nicht deserialisiert, wenn ich etwas anderes nenne; "mittel" und "hoch" deserialisieren korrekt.

Antwort

5

Verwenden Sie eine @, um das Schlüsselwort zu umgehen.

public Thumbnail @default { get; set; }