Ich versuche, ein eingebettetes JSON-Array durchzulaufen und alle Werte zu extrahieren, die in ein lokales Array eingegeben werden sollen. Dies ist, was die JSON wie folgt aussieht:Looping durch eingebettete JSON-Arrays in Swift?
"welcome": {
"data": {
"tncUrl": ""
},
"items": [
{
"newUser": [
{
"stepConcept": false
},
{
"stepSafety": true
},
{
"stepFacilitator": true
},
{
"stepTransparency": true
}
],
"switcher": [
{
"stepConcept": true
},
{
"stepSafety": true
},
{
"stepFacilitator": true
},
{
"stepTransparency": true
}
]
}
]
}
ich in der Lage bin zu einem Punkt, wo ich mir Abrufen von Werten für „newUser“ sehen kann, wird das Problem durch diese Werte Looping und das Hinzufügen von ihnen einen Array. Ich erhalte dabei einen Fehler EXC_BAD_INSTRUCTION. Dies ist der Code Ich verwende diese Werte zu erhalten:
func prepareArrayOfViews(userType: User)
{
if (welcomeJSON != nil)
{
let items : NSArray? = welcomeJSON!.value(forKey: "items") as? NSArray
if (items == nil)
{
listOfViews = ["stepConcept", "stepSafety", "stepFacilitator", "stepTransparency"]
maxPages = listOfViews.count
return
}
if (items != nil) {
if let newUser = (items?.value(forKey: "newUser") as? NSArray){
//Below is where the error "EXC_BAD_INSTRUCTION"
for key in (newUser as! NSDictionary).allKeys
{
if (((newUser as! NSDictionary).value(forKey: key as! String) as? Bool)!)
{
listOfViews.append(key as! String)
}
}
}
if (listOfViews.count == 0)
{
listOfViews = ["stepConcept", "stepSafety", "stepFacilitator", "stepTransparency"]
}
maxPages = listOfViews.count
}
}
}
Sind Sie für das Senden des JSON verantwortlich? Wenn ja, warum senden Sie mehrere Wörterbücher mit nur einem Schlüssel in einem Array (anstatt ** einem ** Wörterbuch)? – vadian
Der Code war bereits vorhanden, ich schreibe ihn neu, um ihn den neuen JSON-Daten anzupassen. – SwiftyJD