2016-07-22 42 views
0

Im folgenden JSON versuchte ich auf das zweite Array in der Kopfzeile zuzugreifen.Basisch "Knoten", "Prozent", "Zeit", "Dateisystem" muss erfasst werden, wie ich einfügen muss in SQL.My Code gibt das komplette Array von Header.Zugriff auf Kind-Token in JSON

JObject jsonObject = JObject.Parse(jsonString); 
      List<string> childTokens = new List<string>(); 
      foreach (var childToken in jsonObject.Children<JProperty>()) 
       childTokens.Add(childToken.Name); 

      foreach (string childToken in childTokens) 
     { 
      if (jsonObject[childToken] is JObject) 
      { 
       JObject jObject = (JObject)jsonObject[childToken]; 
       var jProperty = jObject.Children<JProperty>(); 

      try 

       { 


        if (jProperty.LastOrDefault(x => x.Name == "header") != null) 
        { 
         foreach (var headerValue in jProperty.LastOrDefault(x => x.Name == "header").Value.Children()) 
          table.Columns.Add("[" + headerValue.ToString() + "]"); 
         table.Columns.Add("[ID]"); 
         table.Columns.Add("[comments]"); 
        } 

JSON Beispiel:

"DISK" : { 
     "alarm_count" : 5, 
     "column_width" : [ 
     12, 
     14, 
     16, 
     14 
     ], 
     "header" : [ 
     [ 
      "", 
      "Max Disk Usage", 
      3 
     ], 
     [ 
      "Node", 
      "Percentage", 
      "Time", 
      "File System" 
     ] 
     ] } 

I Anzahl von Arrays in Header kann .. wollen nicht hart codieren .. Ich sollte immer in der Lage, die letzte Reihe in Kopf Kind zu holen token..Please beraten .. dank

Antwort

1

Ihr json snippet Unter der Annahme gültig war und ist ein Teil eines Objekts wie:

{ 
    "DISK": { 
    "alarm_count": 5, 
    "column_width": [ 
     12, 
     14, 
     16, 
     14 
    ], 
    "header": [ 
     [ 
     "", 
     "Max Disk Usage", 
     3 
     ], 
     [ 
     "Node", 
     "Percentage", 
     "Time", 
     "File System" 
     ] 
    ] 
    } 
} 

Sie dies tun könnten:

JObject obj = ...; 
var secondHeader = obj["DISK"]["header"].Last(); 
+0

Hallo, ich n Anzahl von Arrays im Header haben kann .. ich zu hart Code nicht will .. Ich will immer in der Kopfzeile auf das letzte Element holen .. Danke – user1046415

+0

Sie haben immer linq, um Ihnen dabei zu helfen. –

+0

Ja, ich habe versucht, LINQ, um die Header-Elemente zu bekommen .. sieht aus wie ich etwas fehlt, um das letzte Array von Header-Element zu bekommen.Thanks..Please beraten – user1046415