2016-04-13 4 views
1

Я пытаюсь прокрутить значения JSON с помощью SwiftyJSON, чтобы показать их в UIAlertController.Looping через JSON с SwiftyJSON

В моем API вызова с помощью Alamofire Я возвращаю некоторые данные в формате JSON с помощью

if((responseData.result.value) != nil) { 

let json = JSON(responseData.result.value!) 
let token = json["api_token"].string 

response(token: token, errorVal: json) 

} else { 
    return 
} 

Тогда в моем VC я использую эти данные с:

if let errorVal = errorVal { 

var errorMessages = "" 

for (_,subJson):(String, JSON) in errorVal { 

    errorMessages = errorMessages + String(subJson) + "\n" 
} 

} 

errorVal возвращается:

{ 
    "email" : [ 
    "The email field is required." 
    ], 
    "password" : [ 
    "The password field is required." 
    ] 
} 

и errorMessages

[ 
"The email field is required." 
] 
[ 
"The password field is required." 
] 

Но я хочу ErrorMessages для отображения этого вместо:

The email field is required 
The password field is required 

Как я могу цикл по JSON и только получить значение?

ответ

1

Поскольку subJson представляет собой массив строк, получить первый.

if let errorVal = errorVal { 
    var errorMessages = "" 

    for (_,subJson):(String, JSON) in errorVal { 
     // Looks like subJson is an array, so grab the 1st element 
     let s = subJson[0].string 
     errorMessages = errorMessages + s + "\n" 
    } 

} 
1

вы можете использовать что-то вроде этого:

var newMessage = String(subJson).stringByReplacingOccurrencesOfString("[", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil) 
    newMessage = newMessage.stringByReplacingOccurrencesOfString("]", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil) 
    errorMessages = errorMessages + newMessage + "\n" 

 Смежные вопросы

  • Нет связанных вопросов^_^