NSDictionary>使用SwiftyJSON的JSON字符串

问题描述:

这是我正在做的转换它。日志返回nilNSDictionary>使用SwiftyJSON的JSON字符串

let keys = ["firstName", "lastName", "age","carNumber", "licenseNumber", "email","password", "msgType"] 
let objects = ["Pencil", "Eraser", "2332","534543", "543543", "Notebook","Pencil", "ADD_DRIVER"] 
self.dictionary = NSDictionary(objects: objects, forKeys: keys) 

var data = [Dictionary<String, String>]() 
data.append(self.dictionary as! Dictionary<String, String>); 
var jsonObj = JSON(data) 

print("JSON Object") 
print(jsonObj.stringValue) 
+1

您应该添加一条关于期望输出为...如果您创建Dictionary 类型的数据,会发生什么情况? –

+0

我期望输出是一个有效的JSON字符串,我可以发布到服务器。 –

这是我做的,以便提交的RESTful API:

let submitJson: JSON = ["user": username, "pass": password] 
self.body = submitJson.rawString()! 

打印(self.body)返回:

{ “通行证”:“XXX “, ”user“:”xxx“ }

要使用SwiftyJSON生成JSON字符串,请使用rawString(encoding: UInt = default, options opt: NSJSONWritingOptions = default)。这样字符串将不会包含像新行一样的无效字符。

实施例为一个字典:

let keys = ["firstName", "lastName", "age","carNumber", "licenseNumber", "email","password", "msgType"] 
let objects = ["Pencil", "Eraser", "2332","534543", "543543", "Notebook","Pencil", "ADD_DRIVER"] 
let dict = NSDictionary(objects: objects, forKeys: keys) 
let jsonObj = JSON(dict) 
if let stringJSON = jsonObj.rawString(NSUTF8StringEncoding, options: []) { 
    print(stringJSON) 
} 

结果:

{ “姓氏”: “橡皮擦”, “密码”: “铅笔”, “年龄”: “2332”,”名字 “:” 铅笔”, “licenseNumber”: “543543”, “电子邮件”: “笔记本电脑”, “carNumber”: “534543”, “信息类型”: “ADD_DRIVER”}

如果像你的代码片段你希望它在数组之前编码为JSON字符串,然后将它嵌入到N阵列是这样的:

let keys = ["firstName", "lastName", "age","carNumber", "licenseNumber", "email","password", "msgType"] 
let objects = ["Pencil", "Eraser", "2332","534543", "543543", "Notebook","Pencil", "ADD_DRIVER"] 
let dict = NSDictionary(objects: objects, forKeys: keys) 
let jsonObj = JSON([dict]) 
if let stringJSON = jsonObj.rawString(NSUTF8StringEncoding, options: []) { 
    print(stringJSON) 
} 

结果:

[{ “MSGTYPE”: “ADD_DRIVER”, “密码”: “铅笔”, “名字”: “铅笔”, “年龄”: “2332”,“email”:“笔记本”,“carNumber”:“534543”,“licenseNumber”:“543543”,“lastName”:“橡皮擦”}]