class func nsobjectToJSON(swiftObject: NSObject) {
var jsonCreationError: NSError?
let jsonData: NSData = NSJSONSerialization.dataWithJSONObject(swiftObject, options: NSJSONWritingOptions.PrettyPrinted, error: &jsonCreationError)!
if jsonCreationError != nil {
println("Errors: \(jsonCreationError)")
}
else {
// everything is fine and we have our json stored as an NSData object. We can convert into NSString
let strJSON : NSString = NSString(data: jsonData, encoding: NSUTF8StringEncoding)!
println("\(strJSON)")
}
}
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionaryOrArrayToOutput
options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string
error:&error];
if (! jsonData) {
NSLog(@"Got an error: %@", error);
} else {
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:contentDictionary // Here you can pass array or dictionary
options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string
error:&error];
NSString *jsonString;
if (jsonData) {
jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
//This is your JSON String
//NSUTF8StringEncoding encodes special characters using an escaping scheme
} else {
NSLog(@"Got an error: %@", error);
jsonString = @"";
}
NSLog(@"Your JSON String is %@", jsonString);
713
在 Swift (version 2.0) :
class func jsonStringWithJSONObject(jsonObject: AnyObject) throws -> String? {
let data: NSData? = try? NSJSONSerialization.dataWithJSONObject(jsonObject, options: NSJSONWritingOptions.PrettyPrinted)
var jsonStr: String?
if data != nil {
jsonStr = String(data: data!, encoding: NSUTF8StringEncoding)
}
return jsonStr
}
13 回答
在Swift中,我创建了以下辅助函数:
至于ISO7,至少你可以用NSJSONSerialization轻松完成 .
以下是NSArray和NSDictionary的类别,使这非常容易 . 我添加了一个漂亮的打印选项(新行和标签,以便于阅读) .
.
.
.
Apple在iOS 5.0和Mac OS X 10.7中添加了JSON解析器和序列化程序 . 见NSJSONSerialization .
要从NSDictionary或NSArray生成JSON字符串,您不再需要导入任何第三方框架 .
这是怎么做的:
要将NSDictionary转换为NSString:
NOTE: This answer was given before iOS 5 was released.
获取json-framework并执行此操作:
myDictionary
将是你的字典 .您也可以通过在调试器中输入以下内容来即时执行此操作
您可以传递数组或字典 . 在这里,我正在使用NSMutableDictionary .
要从NSDictionary或NSArray生成JSON字符串,您不需要导入任何第三方框架 . 只需使用以下代码: -
在 Swift (version 2.0) :
现在不需要第三方类ios 5引入了Nsjsonserialization
这段代码对于获取jsondata非常有用 .
这是 Swift 4 版本
}
用法示例
或者,如果您确定它是有效的字典,那么您可以使用
这个非常接近原始的Objective-C打印样式