2016-04-19 18 views
14

La stringa da convertire:Come convertire una stringa in JSON utilizzando SwiftyJSON

[{"description": "Hi","id":2,"img":"hi.png"},{"description": "pet","id":10,"img":"pet.png"},{"description": "Hello! :D","id":12,"img":"hello.png"}]

Il codice per convertire la stringa:

var json = JSON(stringLiteral: stringJSON)

La stringa viene convertito in JSON e quando provo a contare quanti blocchi sono all'interno di questo JSON (risposta attesa = 3), ottengo 0.

print(json.count)

Console in uscita: 0

Che cosa mi manca? L'aiuto è molto apprezzato

+0

Se ricordo correttamente è: json.array.count – Darko

+0

Quando stampo il "JSON" mi mostra tutti i dati, ma quando stampo "json.count "mi mostra 0 e non 3: C –

risposta

12

Ciao ragazzi posso risolvere il problema da questo modo ...

nota: lo farò all'utente la "stringa" variabile come variabile di ciò che contiene il JSON

codificare il pungiglione con NSData Ti piace questa

var encodedString : NSData = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)! 

2º non-codificare la stringa codificata (questo può essere sembrare un po 'strano hehehe)

var finalJSON = JSON(data: encodedString) 

e la u può fare quello che mai u come con questo JSON! : D

come ottenere il numero di sezioni in esso (questa è stata la vera domanda) con

finalJSON.count o print(finalJSON[0]) o che cosa mai u come fare ..

Quindi, spero u godere la strada quello che ho trovato!

codifica mastio, Gabriel Cuadros: D

16

In realtà, c'era una funzione built-in in SwifyJSON chiamato 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()) 
} 

var json = JSON.parse(stringJSON)

la sua ora è cambiato a

var json = JSON.init (parseString: stringJSON)

1

sto usando come segue:

let yourString = NSMutableString() 

let dataToConvert = yourString.data(using: String.Encoding.utf8.rawValue) 

let json = JSON(data: dataToConvert!) 

print("\nYour string: " + String(describing: json)) 
Problemi correlati