Convert Swift Dictionary to String

SwiftIos8

Swift Problem Overview


For testing and debugging I am trying to put the content of Dictionary to a String. But have no clue hows it going to achieve. Is it possible? If yes, how.

Dictionary is fetched from web service so I have no idea the key values it have. I want to use the data in app.

In Objective C %@ was enough to store anything in NSString.

Swift Solutions


Solution 1 - Swift

Just use the description property of CustomStringConvertible as

Example:

Note: Prior to Swift 3 (or perhaps before), CustomStringConvertible was known as Printable.

Solution 2 - Swift

Dictionary to string with custom format:

let dic = ["key1":"value1", "key2":"value2"]

let cookieHeader = (dic.flatMap({ (key, value) -> String in
	return "\(key)=\(value)"
}) as Array).joined(separator: ";")

print(cookieHeader) // key2=value2;key1=value1

Solution 3 - Swift

Jano's answer using Swift 5.1:

let dic = ["key1": "value1", "key2": "value2"]
let cookieHeader = dic.map { $0.0 + "=" + $0.1 }.joined(separator: ";")
print(cookieHeader) // key2=value2;key1=value1

Solution 4 - Swift

You can just print a dictionary directly without embedding it into a string:

let dict = ["foo": "bar", "answer": "42"]

println(dict)
// [foo: bar, answer: 42]

Or you can embed it in a string like this:

let dict = ["foo": "bar", "answer": "42"]

println("dict has \(dict.count) items: \(dict)")
  // dict has 2 items: [foo: bar, answer: 42]

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionkhunshanView Question on Stackoverflow
Solution 1 - SwiftGoZonerView Answer on Stackoverflow
Solution 2 - SwiftJanoView Answer on Stackoverflow
Solution 3 - SwiftvauxhallView Answer on Stackoverflow
Solution 4 - SwiftAbhi BeckertView Answer on Stackoverflow