2016-09-02 5 views
1

Ich habe einige JSON:JSON.net deserialisiert JSON ohne Schema

{ 
    "739c39e": [7866679, 31.96051, 117.13700, 310, 30100, 408, 20515, 2955, "A319", "B-6429", 1440504861, "SHA", "XIY", "MU2168", 0, 0, "CES2168", 0], 
    "739d433": [5242971, 51.46741, -0.48536, 270, 0, 16, 0, 2529, "A320", "T7-MRD", 1440504861, "LHR", "BEY", "ME202", 1, 0, "MEA202", 0] 
} 

Ich versuche, dies zu deserialisieren, aber ich bin nicht viel Glück.

Ich habe versucht:

var definition = new { a = "", b = "", c = "", d = "", e = "", f = "", g = "", h = "", i = "", j = "", k = "", l = "", m = "", n = "", o = "", p = "", q = "", r = "" }; 
var jsonData = @File.ReadAllText(@filepathToData); 
dynamic deserializedData = JsonConvert.DeserializeAnonymousType(jsonData, definition); 

Ich hätte nie erwartet, dass zu arbeiten, wirklich, da es keine "Definition" im JSON. Ich habe auch versucht JArray.Parse(jsonData); weg, aber ich bekomme nichts.

Ich habe auch versucht JsonConvert.DeserializeObject(jsonData);, aber das gibt nichts zurück ... oder zumindest kann ich das zurückgegebene Objekt mit Visual Studio (2015) nicht überprüfen.

Hat jemand irgendwelche Ideen?

Ich mache das in Unity3D, wenn es einen Unterschied macht.

+1

Ihre Daten sind ein Wörterbuch, aber Ihre defeinition ist ein Array. Also ändere es vielleicht in etwa so: var definition = neues Wörterbuch (string key, new {a = "", b ......} – Edgaras

Antwort

4

Sie können versuchen, diese

var o = JsonConvert.DeserializeObject<Dictionary<string, object[]>>(json); 
o.Dump(); 
+0

Nice one, danke! @Edgaras war auf dem richtigen Weg! – pookie

0

Man könnte es zu einem dynamischen Objekt wie folgt deserialisieren:

dynamic o = JsonConvert.DeserializeObject(json); 
Console.WriteLine(o["739c39e"]); 
Console.WriteLine(o["739c39e"][3]); // output: 310 
+0

Ich habe das schon probiert. – pookie

+0

Und ich nehme an, es hat nicht funktioniert? – stefankmitph

Verwandte Themen