【问题标题】:Send Parameters in Below format by using Alamofire [closed]使用 Alamofire 以以下格式发送参数 [关闭]
【发布时间】:2018-02-09 06:35:00
【问题描述】:

我是 Alamofire,用于在我的项目中调用 API,我想为“语言”键以以下格式制作参数:

[
  {
    "isSelected": true,
    "languageProficiencies": [
      {
        "isSelected": false,
        "name": "Advance"
      },
      {
        "isSelected": true,
        "name": "Proficient"
      },
      {
        "isSelected": false,
        "name": "Basic"
      },
      {
        "isSelected": false,
        "name": "Below Basic"
      }
    ],
    "name": "English"
  },
  {
    "isSelected": false,
    "languageProficiencies": [
      {
        "isSelected": false,
        "name": "Advance"
      },
      {
        "isSelected": false,
        "name": "Proficient"
      },
      {
        "isSelected": false,
        "name": "Basic"
      },
      {
        "isSelected": false,
        "name": "Below Basic"
      }
    ],
    "name": "Malay"
  },
  {
    "isSelected": false,
    "languageProficiencies": [
      {
        "isSelected": false,
        "name": "Advance"
      },
      {
        "isSelected": false,
        "name": "Proficient"
      },
      {
        "isSelected": false,
        "name": "Basic"
      },
      {
        "isSelected": false,
        "name": "Below Basic"
      }
    ],
    "name": "Mandarin"
  },
  {
    "isSelected": false,
    "languageProficiencies": [
      {
        "isSelected": false,
        "name": "Advance"
      },
      {
        "isSelected": false,
        "name": "Proficient"
      },
      {
        "isSelected": false,
        "name": "Basic"
      },
      {
        "isSelected": false,
        "name": "Below Basic"
      }
    ],
    "name": "Tamil"
  }
]

目前我的“语言”键格式是:

["resource": ["language": [["languageProficiencies": [["name": "Advance", "isSelected": true], ["name": "Proficient", "isSelected": false], ["name": "Basic", "isSelected": false], ["name": "Below Basic", "isSelected": false]], "isSelected": "true", "name": "English"], ["languageProficiencies": [["name": "Advance", "isSelected": false], ["name": "Proficient", "isSelected": false], ["name": "Basic", "isSelected": false], ["name": "Below Basic", "isSelected": false]], "isSelected": "false", "name": "Malay"], ["languageProficiencies": [["name": "Advance", "isSelected": false], ["name": "Proficient", "isSelected": false], ["name": "Basic", "isSelected": false], ["name": "Below Basic", "isSelected": false]], "isSelected": "false", "name": "Mandarin"], ["languageProficiencies": [["name": "Advance", "isSelected": false], ["name": "Proficient", "isSelected": false], ["name": "Basic", "isSelected": false], ["name": "Below Basic", "isSelected": false]], "isSelected": "false", "name": "Tamil"]], "user_id": 384]]

请为我提供与我首先提到的相同格式的建议。提前致谢!!编码愉快!

【问题讨论】:

  • 你是如何制作当前格式的?请出示该代码。
  • @Sachin 你可以像this answaer一样做到这一点
  • @Sachin 是您的第二个格式正确的 JSON,格式化时出现错误
  • @anoop4real 第二个是我的参数字典,我传入了“Parameters”类型的 Alamofire 参数

标签: ios json swift parameter-passing alamofire


【解决方案1】:

数组包含字典对象,languageProficiencies也是一个数组,它也包含字典对象。

您可以使用以下代码归档这种类型的格式:

var mainArray:[[String: Any]] = []
for i in 0...1 {
    var dict:[String: Any] = [:]
    dict["isSelected"] = "true"
    dict["name"] = "English"

    var arrLanguageProficiencies:[[String: Any]] = []
    for j in 0...1 {
        var dictLangProf:[String: Any] = [:]
        dictLangProf["isSelected"] = "false"
        dictLangProf["name"] = "Advance"
        arrLanguageProficiencies.append(dictLangProf)
    }
    dict["languageProficiencies"] = arrLanguageProficiencies

    mainArray.append(dict)
}

do {
    let jsonData = try JSONSerialization.data(withJSONObject: mainArray, options: JSONSerialization.WritingOptions.prettyPrinted)
    let theJSONText = NSString(data: jsonData, encoding: String.Encoding.ascii.rawValue)!
    print ("JSON Text :"+(theJSONText as String))

} catch let error as NSError {
    print(error)
}

输出看起来像:

[
    {
        "name" : "English",
        "isSelected" : "true",
        "languageProficiencies" : [
            {
                "name" : "Advance",
                "isSelected" : "false"
            },
            {
                "name" : "Advance",
                "isSelected" : "false"
            }
        ]
    },
    {
        "name" : "English",
        "isSelected" : "true",
        "languageProficiencies" : [
            {
                "name" : "Advance",
                "isSelected" : "false"
            },
            {
            "name" : "Advance",
            "isSelected" : "false"
            }
        ]
    }
]

【讨论】:

    猜你喜欢
    • 2017-04-13
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 2016-10-17
    相关资源
    最近更新 更多