如何在Swift中将字典转换为json,并删除;“可选”;在json字符串中

如何在Swift中将字典转换为json,并删除;“可选”;在json字符串中,json,swift,dictionary,Json,Swift,Dictionary,我想将字典转换为json,字典如下: [ [ "user_event" : "Optional({\n \"strokes\" : {\n \"oldText\" : \"er\",\n \"selection\" : \"error\",\n \"candidates\" : \"error|errors|era\",\n \"context\" : \"error \"\n }\n})", "device_type" :

我想将字典转换为json,字典如下:

[
      [
        "user_event" : "Optional({\n  \"strokes\" : {\n    \"oldText\" : \"er\",\n    \"selection\" : \"error\",\n    \"candidates\" : \"error|errors|era\",\n    \"context\" : \"error \"\n  }\n})",
        "device_type" : "x86_64",
        "language" : "EN_US"
      ],
      [
        "user_event" : "Optional({\n  \"strokes\" : {\n    \"oldText\" : \"\",\n    \"selection\" : \"messages\",\n    \"candidates\" : \"messages|message|in\",\n    \"context\" : \"error messages \"\n  }\n})",
        "device_type" : "x86_64",
        "language" : "EN_US"
      ]
    ]
我正在使用以下代码:

let data = try NSJSONSerialization.dataWithJSONObject(object, options: NSJSONWritingOptions())
let json = NSString.init(data: data, encoding: NSUTF8StringEncoding)

但是结果字符串中的字符为“可选”(“这将导致json解码器进程失败,我如何排除这些额外的字符?”

不要尝试删除“可选”(),将数据更改为不包含可选字符,将其转换为json,“可选”()将消失。即使没有“可选”,例如:[“did”:65ca26841b0384067e293562aa40d0b0,“输入模式”:tap,“语言”:EN_US,“设备类型”:x86_64],“did”:65ca26841b0384067e293562aa40d0b0,“输入模式”:tap,“语言”:EN_US,“设备类型”:x86_64],,它仍将生成“可选”([{“did”):“65CA26841B0384067E2932AA40D0B0”,“输入模式”:“tap”,“语言”:“EN_US”,“device_type”:“x86_64”},{“did”:“65ca26841b0384067e293562aa40d0b0”,“input_mode”:“tap”,“language”:“EN_US”,“device_type”:“x86_64”}),为什么?我使用了以下代码:if let d=数据作为NSData!{let json=NSString.init(数据:d,编码:NSUTF8StringEncoding)print(==json字符串:(json)”)返回字符串(json)}仍然不工作。