如何使用 SwiftyJSON 将字符串转换为 JSON
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
我错过了什么?非常感谢帮助。
我就这样修好了
我将使用变量“string”作为包含 JSON.
的变量
1.
像这样使用 NSData 对字符串进行编码
var encodedString : NSData = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)!
对编码后的字符串进行反编码(这听起来可能有点奇怪呵呵呵呵):
var finalJSON = JSON(data: encodedString)
然后你可以用这个JSON做任何你想做的事。
喜欢用
获取其中的节数(这是真正的问题)
finalJSON.count
或 print(finalJSON[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: [=10=])}) ?? 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: [=10=])}) ?? JSON(NSNull())
SwiftyJSON 中有一个内置的解析器:
let json = JSON.init(parseJSON: responseString)
别忘了导入 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
我错过了什么?非常感谢帮助。
我就这样修好了
我将使用变量“string”作为包含 JSON.
的变量1.
像这样使用 NSData 对字符串进行编码
var encodedString : NSData = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)!
对编码后的字符串进行反编码(这听起来可能有点奇怪呵呵呵呵):
var finalJSON = JSON(data: encodedString)
然后你可以用这个JSON做任何你想做的事。
喜欢用
获取其中的节数(这是真正的问题)finalJSON.count
或 print(finalJSON[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: [=10=])}) ?? 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: [=10=])}) ?? JSON(NSNull())
SwiftyJSON 中有一个内置的解析器:
let json = JSON.init(parseJSON: responseString)
别忘了导入 SwiftyJSON!