我有一本字典:
var schedule : [String:[(Bool,Bool)]]!//[Day:[(AMenabled:PMenabled)]]
我想把它解码成json文件放到服务器上
调度对象是这样的:
["Sat":[ (true,true),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(true,true)
],
"Sun":[ (true,true),
(false,true),
(true,true),
(false,true),
(true,true),
(false,true),
(true,true),
(false,true),
(true,true),
(false,true),
(true,true),
(false,true)
],
"Mon":[ (true,true),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(true,false),
(true,true)
],
"Tue":[ (true,true),
(false,true),
(false,false),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,true)
],
"Wed":[ (true,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,true),
(true,true),
(true,true)
],
"Thur":[ (true,true),
(false,true),
(true,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false)
],
"Fri":[ (true,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,false),
(false,true),
(false,true),
(true,true),
(true,false)
]
]
我想解码成类似这样的 JSON 文件:
{
"parental_control": {
"user_id": 57,
"profile": 1,
"chat": false,
"forum_read": false,
"forum_write": false,
"days": [
[
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true
],
[
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true
],
[
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true
],
[
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true
],
[
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true
],
[
true,
false,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
false,
true
],
[
true,
false,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
false,
true
]
]
}
}
那么在不关心json文件中的parentalcontrol等键的情况下,如何实现到json文件的映射:
我尝试了什么?
我尝试使用内置的 NSJSONSerialization
var json = NSJSONSerialization.dataWithJSONObject(self.schedule, options: NSJSONWritingOptions.PrettyPrinted,error: nil)
但是我收到了这个错误:
cannot invoke dataWithJSONObject with an argument list of type '([String:[(Bool,Bool)]]!,options:NSJSONWritingOptions,error:nil)'
最佳答案
您收到的错误是因为 NSJSONSerialization
在序列化您的 (Bool, Bool)
元组时遇到问题(元组在 JSON 中不可用)。您必须将它们转换为适当的类型才能序列化它们。
另外,这里是NSJSONSerialization
documentation的第一段.您可以将其用作有效类型的引用(请注意,Swift 各自的类型,如字符串、数组、字典等当然会按预期工作):
An object that may be converted to JSON must have the following properties:
The top level object is an NSArray or NSDictionary.
All objects are instances of NSString, NSNumber, NSArray, NSDictionary, or NSNull.
All dictionary keys are instances of NSString.
Numbers are not NaN or infinity.
关于ios - 来自字典的 JSON 编码 [无法调用 'dataWithJSONObject ...],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31826251/