変換する文字列:
_[{"description": "Hi","id":2,"img":"hi.png"},{"description": "pet","id":10,"img":"pet.png"},{"description": "Hello! :D","id":12,"img":"hello.png"}]
_
文字列を変換するコード:
var json = JSON(stringLiteral: stringJSON)
文字列はJSONに変換され、このJSON内にあるブロックの数を数えようとすると(予想される回答= 3)、0になります。
print(json.count)
コンソール出力:_0
_
私は何が欠けていますか?ヘルプは大歓迎です。
こんにちは、私はこの方法で修正します...
注:JSONを含む変数として変数「string」を使用します
1º
このようにNSDataでスティングをエンコードします
_var encodedString : NSData = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)!
_
2ºエンコードされた文字列のエンコードを解除します(これは少し奇妙に聞こえるかもしれませんが)
_var finalJSON = JSON(data: encodedString)
_
そして、あなたはこのJSONで好きなことをすることができます! :D
その中のセクションの数を取得するようなものです(これが本当の質問でした)
_finalJSON.count
_またはprint(finalJSON[0])
またはあなたがしたいこと.
だから、私が見つけた方法を楽しむことを願っています!
コーディングを続ける、ガブリエル・クアドロス:D
実際、parse
と呼ばれる組み込み関数がSwifyJSONにありました
/**
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)
その今に変更
var json = JSON.init(parseJSON:stringJSON)
私は次のように使用しています:
let yourString = NSMutableString()
let dataToConvert = yourString.data(using: String.Encoding.utf8.rawValue)
let json = JSON(data: dataToConvert!)
print("\nYour string: " + String(describing: json))
Swift4
let json = string.data(using: String.Encoding.utf8).flatMap({try? JSON(data: $0)}) ?? JSON(NSNull())