如何使用SwiftyJSON将字符串转换为JSON

时间:2016-04-19 22:37:50

标签: ios json swift swifty-json

要转换的字符串:

[{"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

我错过了什么?非常感谢帮助。

5 个答案:

答案 0 :(得分:36)

实际上,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)

答案 1 :(得分:14)

大家好我从这个方面修复它......

注意:我将使用变量“string”作为包含JSON的变量

使用NSData编码sting,如下所示

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

2º对编码的字符串进行解码(这可能听起来有点奇怪,呵呵)

var finalJSON = JSON(data: encodedString)

你可以用这个JSON做你想做的事! :d

喜欢用

获取其中的部分数量(这是真正的问题)

finalJSON.countprint(finalJSON[0])或您想做的事情......

所以,我希望你喜欢我发现的方式!

继续编码,Gabriel Cuadros:D

答案 2 :(得分:2)

我使用如下:

let yourString = NSMutableString()

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

let json = JSON(data: dataToConvert!)

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

答案 3 :(得分:1)

SwiftyJSON 中有一个内置的解析器:

let json = JSON.init(parseJSON: responseString)

不要忘记导入 SwiftyJSON!

答案 4 :(得分:0)

Swift4

let json = string.data(using: String.Encoding.utf8).flatMap({try? JSON(data: $0)}) ?? JSON(NSNull())