要转换的字符串:
[{"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编码sting
var encodedString : NSData = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)!
2º对编码的字符串进行解码(这可能听起来有点怪异呵呵)
var finalJSON = JSON(data: encodedString)
你可以用这个JSON做你想做的事! :d
喜欢得到它中的部分数量(这是真正的问题)
finalJSON.count
或print(finalJSON[0])
或者你想做什么..
所以,我希望你喜欢我发现的方式!
继续编码,加布里埃尔图片:D
我使用如下:
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())