【问题标题】:Convert dictionary of dictionary into jsonObject to send as RequestBody swift将字典字典转换为 jsonObject 以作为 RequestBody swift 发送
【发布时间】:2019-11-02 16:55:11
【问题描述】:

我正在尝试将其中包含字典数组的字典转换为 Json 对象,该对象作为其中的 JsonObject 的 JsonArray 来发送请求,但我总是收到一条错误消息:

“***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'JSON写入(NSURL)中的类型无效'”

我尝试通过以下方式转换它:

 requestBody = ["audio": finalMap]
 let jsonData = try? JSONSerialization.data(withJSONObject: 
   requestBody)

-----This is the Dictionary -------
      [
   "audio": [
     [
      "__type":, "filename": , 
      "content":data1.wav,
      "speech": {
                 "__type" =;
                  flags = 3;
                  grammar = "in";
                 languageCode = "en-US";
                 name = pin;
               }, 
      "name": ], 
       [
      "__type":, "filename": , 
      "content":data2.wav,
      "speech": {
                 "__type" =;
                  flags = 3;
                  grammar = "in";
                 languageCode = "en-US";
                 name = pin;
               }, 
      "name": ],
      [
      "__type":, "filename": , 
      "content":data3.wav,
      "speech": {
                 "__type" =;
                  flags = 3;
                  grammar = "in";
                 languageCode = "en-US";
                 name = pin;
               }, 
      "name": ],,
    ]
 ]

-----这是预期的结果-----

{
  "audio": [
{
  "__type": "SpeechVerifierAudio",
  "name": "string",
  "filename": "string",
  "content": "string",
  "speech": [
    {
      "__type": "SpeechContext",
      "name": "string",
      "grammar": "string",
      "languageCode": "string",
      "phrases": [
        "string"
      ],
      "flags": 0
    }
  ]
}
 ]
}

【问题讨论】:

    标签: ios json swift dictionary


    【解决方案1】:

    您的问题似乎是您的字典中有一个 NSUrl,您不能将其转换为 URL 吗?

    (URL 可编码,而 NSUrl 不可编码)

    【讨论】:

    • 好吧,我有 URL 形式的音频文件,但是当我执行 Data(contentsOf: audioFile) 时,它就起作用了。不过我很想知道为什么。
    • 要将字典转换为JSON(或plist)字典的内容必须是Encodable,也就是说key是String,value是其中一种:String、Int、Double、日期、数据、URL 或符合 Encodable 协议的自定义类型
    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2018-08-21
    • 1970-01-01
    相关资源
    最近更新 更多