2016-11-20 4 views
-3

Ich versuche, den JSON zu analysieren, die ich von der Serverantwort gelesen habe. Ich kann das erste Level holen, aber danach kann ich zum nächsten Level übergehen. Da ich für IOS völlig neu bin, habe ich so viel wie möglich erforscht und versucht, aber alles war in der Mitte. Ich bezweifle, dass etwas im Grundlevel fehlt.Wie analysiert man die JSON in swift 3

let json = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary 

print (json)

{ 

"ab_report" = "[{\"label\":\"ART\",\"value\":187},{\"label\":\"SINDED\",\"value\":24},{\"label\":\"RES\",\"value\":1},{\"label\":\"REAL\",\"value\":1}]"; 

distslist =  (

      { 

     "_id" =    { 

      "$id" = 5732d884dbe782a63c760e3b; 

     }; 

     "dt_code" = ADB; 

     "dt_name" = Adilaasbad; 

     "st_name" = 572d95c0dsdfbe7823348c981b3; 

    }, 

      { 

     "_id" =    { 

      "$id" = 572d95d4dbsadfe7826b48c981b3; 

     }; 

     "dt_code" = HEEWYD; 

     "dt_name" = aassas; 

     "st_name" = 572d95c0efghbe7823348dc981b3; 

    } 

) 

"last_ssdate" = "Lase on : 2s0"; 

message = ""; 

"ressdfort" = "[{\"label\":\"Ded\",\"value\":71},{\"label\":\"Weed\",\"value\":0},{\"label\":\"Scrnitiated\",\"value\":0}]"; 

"scrort" = "[{\"label\":\"Physicals\",\"value\":8551},{\"label\":\"General\",\"value\":15752},{\"label\":\"Ees\",\"value\":2756}]"; 

}

print (json [ "ressdfort“]!)

[{"label":"Ded","value":71},{"label":"Weed","value":0},{"label":"Stiated","value":0}] 

Danach will ich man die Werte nehmen von eines mit "Label" und "Wert" von jedem Objekt.

Vielen Dank im Voraus.

+0

json ["ressdfort"]! Gibt ein 'Array' mit Elementen des Typs' Dictionary' '[Dictionary] '.go wie man mit diesen Typen fertig wird. Wenn Sie in Swift stopfen, möchten Sie vielleicht lesen: https://developer.apple.com/library/content/documentation /Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309 – shallowThought

+0

@ShallowThought Vielen Dank für Ihren Vorschlag Ich bin durch den Link gegangen und habe ein paar grundlegende Ideen. wenn ich 'print (type (von: json))' es '' NSDictionaryI', 'type (von: json [" ressdfort "]!)' es ist '__NSCFString' und' type (von: json ["ressdfort"] ]!) 'es ist' Optional santoshi

+0

Zwei Gedanken: Bevorzugt 'Dictionary' ([String: Any] oder etwas ähnliches) zu' NSDictionary' in Swift. Außerdem haben Sie JSON JSON String als JSON eingebettet, so dass Sie für 'ressdfort', 'script' und 'ab_report' Werte erneut' JSONSerialization' aufrufen müssen. – Larme

Antwort

0

nun versuchen, diese für "label" values.Pass Ihre jsonObj dieser function.Hope seine Arbeits für Sie bekommen :)

func parseJson(_ JsonDict: AnyObject) 
    { 

     if let dict = JsonDict["ressdfort"] as? [AnyObject]{ 
      for dict1 in dict{ 
       if let textDist = (dict1 as? [String : AnyObject])?["label"]{ 
        print("YOUR LABEL TEXT IS \(String(describing: textDist))") 

       } 
      } 

     } 


    } 
-1
let bundle = json["ressdfort"] as! Array 

for eachObject in bundle 
{ 
    let label = (eachObject as! NSDictionary).valueForKey("label")! as! String 
    let value =(eachObject as! NSDictionary).valueForKey("value")! as! String 
    print(label) 
    print(value) 
} 
+0

Es tut mir leid, dass es nicht funktioniert, ich bekomme 'Ambiguous reference to member' subscript'' – santoshi

0

Sie Alamofire verwenden können und Json Antwort zu analysieren, wie folgt: