这可能是一个简单的问题,但是如何从现有数组创建一个简单的JSON字符串?
在文档中,我发现的唯一内容是:
class func JSONObjectWithData(_ data: NSData,
options opt: NSJSONReadingOptions,
error error: NSErrorPointer) -> AnyObject?
但我只想从现有的数组创建一个简单的JSON字符串。
使用现有的Swift JSON Extensions,我只能解析现有的JSON字符串,并且无法创建新的字符串。
我可以手动创建String,但可能有更好的解决方案。
非常感谢任何帮助。
答案 0 :(得分:3)
如果你有一个NSArray对象,你可以使用类似的东西来创建你的JSON字符串:
func JSONStringify(value: AnyObject, prettyPrinted: Bool = false) -> String {
var options = prettyPrinted ? NSJSONWritingOptions.PrettyPrinted : nil
if NSJSONSerialization.isValidJSONObject(value) {
if let data = NSJSONSerialization.dataWithJSONObject(value, options: options, error: nil) {
if let string = NSString(data: data, encoding: NSUTF8StringEncoding) {
return string
}
}
}
return ""
}
I found here the details for this function
func JSON2String(jsonObj: AnyObject, prettyPrinted: Bool = false) -> String {
let options = prettyPrinted ? JSONSerialization.WritingOptions.prettyPrinted : []
if JSONSerialization.isValidJSONObject(jsonObj) {
if let data = try? JSONSerialization.data(withJSONObject: jsonObj, options: options) {
if let string = String(data: data, encoding: Task.StringEncoding) {
return string
}
}
}
return ""
}
答案 1 :(得分:1)
我们假设您有String
个名为array
的数组。你会这样做:
let array = [ "String1", "String2" ]
var error:NSError?
let data = NSJSONSerialization.dataWithJSONObject(array, options: NSJSONWritingOptions.allZeros, error: &error)
let str = NSString(data:data!, encoding:NSUTF8StringEncoding)
println("\(str!)")