ios - responses - Cómo convertir una cadena en JSON usando SwiftyJSON
swift alamofire github (4)
En realidad, había una función incorporada en SwifyJSON llamada parse
/**
Create a JSON from JSON string
- parameter string: Normal json string like ''{"a":"b"}''
- returns: The created JSON
*/
public static func parse(string:String) -> JSON {
return string.dataUsingEncoding(NSUTF8StringEncoding)
.flatMap({JSON(data: $0)}) ?? JSON(NSNull())
}
Tenga en cuenta que
var json = JSON.parse(stringJSON)
ahora ha cambiado a
var json = JSON.init(parseJSON:stringJSON)
La cadena a convertir:
[{"description": "Hi","id":2,"img":"hi.png"},{"description": "pet","id":10,"img":"pet.png"},{"description": "Hello! :D","id":12,"img":"hello.png"}]
El código para convertir la cadena:
var json = JSON(stringLiteral: stringJSON)
La cadena se convierte a JSON y cuando intento contar cuántos bloques hay dentro de este JSON (respuesta esperada = 3), obtengo 0.
print(json.count)
Salida de consola: 0
¿Qué me estoy perdiendo? La ayuda es muy apreciada.
Estoy usando de la siguiente manera:
let yourString = NSMutableString()
let dataToConvert = yourString.data(using: String.Encoding.utf8.rawValue)
let json = JSON(data: dataToConvert!)
print("/nYour string: " + String(describing: json))
Hola chicos, lo soluciono de esta manera ...
nota: utilizaré la variable "cadena" como la variable que contiene el JSON
1º
codificar la picadura con NSData como este
var encodedString : NSData = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)!
2º descodificar la cadena codificada (esto puede sonar un poco raro jejeje)
var finalJSON = JSON(data: encodedString)
¡Y tú puedes hacer lo que quieras con este JSON! :RE
como obtener el número de secciones en él (esta era la verdadera pregunta) con
finalJSON.count
o print(finalJSON[0])
o lo que print(finalJSON[0])
hacer ..
Entonces, espero que disfrutes la forma en que lo encontré!
sigue codificando, gabriel cuadros: d
Swift4
let json = string.data(using: String.Encoding.utf8).flatMap({try? JSON(data: $0)}) ?? JSON(NSNull())