2016-03-23 1 views
2

Ich habe diese JSON (eigentlich Swagger):undefinierten Datenelemente Namen Platzierung in generische Diktion <string, object> wenn JSON Parsen

{ 
    "swagger": "2.0", 
    "info": { 
    "version": "2.0", 
    "name": "TheName", 
    "description": "No description" 
    } 
    "somethingElse" : "xyz" 
} 

ich Newtonsoft.JSON verwende. I definiert mein Objekt:

public class WebService 
{ 
    public string swagger; 
    public Dictionary<string, object> AllOthers; 
} 

Wie Sie sehen, habe ich nicht „info“ oder „somethingelse“ Objekte als Mitglieder definiert. Vielmehr möchte ich dies in die allgemeine AllOthers gestellt bekommen dictionary

Als ich

nennen
var ws = Newtonsoft.Json.JsonConvert.DeserializeObject<WebService>(swaggerJSON); 

ws wird nun korrekt die Prahlerei Versionsnummer String enthalten, aber AllOthers null enthalten. Ich möchte, dass AllOthers eine Ganzzahl für Name und Beschreibung und die Nutzdaten, die in einem generischen Objekt gespeichert werden sollen, enthält.

Wie wird das erreicht, oder kann es nicht leicht sein?

Dank

Antwort

2

Es ist ein Attribut für diese [JsonExtensionData]. Markieren Sie Ihr Wörterbuch mit diesem Attribut:

public class WebService 
{ 
    public string swagger; 
    [JsonExtensionData] 
    public Dictionary<string, object> AllOthers; 
} 

var ws = Newtonsoft.Json.JsonConvert.DeserializeObject<WebService>(json); 

Ich hoffe, das hilft! Prost.

+0

kann es durch ein Attribut erreicht werden - stellt sich heraus, es ist. Vielen Dank :) – Prof