-2

I am Alamofire for API calling in my project and I want to make parameters in below format for "language" key :

[
  {
    "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"
  }
]

Currently my format for "language" key is:

["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]]

Please provide me suggestions to do same format as I mentioned first. Thanks in advance!! Happy coding!!

anoop4real
  • 7,598
  • 4
  • 53
  • 56
Sachin Dobariya
  • 744
  • 7
  • 16

1 Answers1

1

Array contains the object of dictionary and languageProficiencies is also an array and its also contains the object of dictionary.

You can archive this type of format using below code :

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)
}

And Output looks like :

[
    {
        "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"
            }
        ]
    }
]
Jayesh Thanki
  • 2,037
  • 2
  • 23
  • 32