![](/img/trans.png)
[英]How to convert a string to JSON Array in Swift with SwiftyJSON?
[英]How to convert a string into JSON using SwiftyJSON
要轉換的字符串:
[{"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
我錯過了什么? 非常感謝幫助。
實際上,SwifyJSON 中有一個內置函數叫做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)
它現在改為
var json = JSON.init(parseJSON:stringJSON)
我是這樣修的。
我將使用變量“string”作為包含 JSON 的變量。
1.
像這樣用 NSData 編碼刺痛
var encodedString : NSData = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)!
取消編碼的字符串編碼(這可能聽起來有點奇怪呵呵):
var finalJSON = JSON(數據:編碼字符串)
然后你可以用這個 JSON 做任何你喜歡的事情。
就像獲取其中的部分數量(這是真正的問題)
finalJSON.count
或print(finalJSON[0])
或任何您喜歡做的事情。
我使用如下:
let yourString = NSMutableString()
let dataToConvert = yourString.data(using: String.Encoding.utf8.rawValue)
let json = JSON(data: dataToConvert!)
print("\nYour string: " + String(describing: json))
斯威夫特4
let json = string.data(using: String.Encoding.utf8).flatMap({try? JSON(data: $0)}) ?? JSON(NSNull())
SwiftyJSON 中有一個內置的解析器:
let json = JSON.init(parseJSON: responseString)
不要忘記導入 SwiftyJSON!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.