2017-12-27 6 views
0

Ich habe JsonFile von Daten zu erhalten, und das Dateiänderung zum Zeitpunkt wie verschachteltes Objekt sein kann, also muß ich eine Lösung für jede Änderung in der DateiWie jeson-Datei mit dynamischen Kind deserialize?

{ 
"Result": [{ 
    "ProductIid": 883, 
    "Mark": "KCD", 
    "Position": null, 
    "ChildProduct": [{ 
     "ProductIid": 8831, 
     "Mark": "KCE", 
     "Position": "AU20001", 
    }] 
}, 
{ 
    "ProductIid": 999, 
    "Mark": "POM", 
    "Position": null 
}, 

und ändern Sie dies zum Beispiel aussehen:

{ 
"Result": [{ 
    "ProductIid": 883, 
    "Mark": "KCD", 
    "Position": null, 
    "ChildProduct": [{ 
     "ProductIid": 8831, 
     "Mark": "KCE", 
     "Position": "AU20001", 
     "ChildProduct": [{ 
       "ProductIid": 8832, 
       "Mark": "KCF", 
       "Position": "20001", 
      }] 
    }] 
}, 
{ 
    "ProductIid": 999, 
    "Mark": "POM", 
    "Position": null 
}, 

schon kann ich Daten aus der Datei wie diese erhalten, aber seine statische Lösung:

var responseData = streamReader.ReadToEnd(); 
rootObject=JsonConvert.DeserializeObject<RootObject(responseData); 

JObject testData = JObject.Parse(responseData); 
JArray child = (JArray)testData["Result"][0]["Child"]; 
+1

Ist es wirklich dynamisch oder sind es nur Teilmengen einer breiteren Spezifikation? –

+0

Hat JSON eine völlig andere Struktur oder ist es eine wohldefinierte Menge möglicher Strukturen? – JohnyL

+0

Ich denke, ist nicht wichtig ist dieser Fall, aber ich muss alle Daten zeigen – xamarinDev

Antwort

2

Basierend auf dem JSON Sie zur Verfügung gestellt, das ganz scheint einfach, z.B.

public class Product 
{ 
    public long ProductIid {get;set;} 
    public string Mark {get;set;} 
    public string Position {get;set;} 
    public Product[] ChildProduct {get;set;} 
} 

var data = JsonConvert.DeserializeObject<Product[]>(responseData);