2016-10-21 8 views
-2
{ 
    "1": { 
    "id": 1, 
    "name": "Name(1)", 
    "var": 24, 
    "type": "TEST" 
    }, 
    "2": { 
    "id": 2, 
    "name": "Name(2)", 
    "var": 24, 
    "type": "TEST" 
    }, 
... 

Verwendung von TIntObjectMap in Java und laden sie so gut funktioniert. Konnte keinen Weg finden, dies in C# zu tun.Wie wird dieses JSON in C# deserialisiert?

GSON.fromJson(FileUtils.readFileToString(new File("file.json")),new TypeToken<Map<Integer, Definition>>() { }.getType())); 

Antwort

1

Json.Net

var myobjs = JsonConvert.DeserializeObject<Dictionary<string, MyObject>>(json); 

public class MyObject 
{ 
    public int id { get; set; } 
    public string name { get; set; } 
    public int var { get; set; } 
    public string type { get; set; } 
} 

Sie sogar nutzen dynamic machen kann ohne Verwendung einer Klasse wie MyObject

dynamic dynObj = JsonConvert.DeserializeObject(json); 
Console.WriteLine(dynObj["1"].name); 

Diese Verwendung ist die json I verwendet wird (wie Sie auf dem Laufenden)

{ 
    "1": { 
    "id": 1, 
    "name": "Name(1)", 
    "var": 24, 
    "type": "TEST" 
    }, 
    "2": { 
    "id": 2, 
    "name": "Name(2)", 
    "var": 24, 
    "type": "TEST" 
    } 
} 
+0

Fehler beim Umwandeln von Wert 1 in den Typ – Indrz

+0

@Indrz Da dein JSON in Frage steht, habe ich meinen Code vor dem Posten getestet und es funktioniert ... Also poste bitte etwas besser als 'Fehler beim Konvertieren von Wert 1 in den Typ' –

+0

@Jim Ich habe es gerade eben nochmal getestet . Es ist korrekt und funktioniert ... –

Verwandte Themen