In this tutorial, you will learn how to convert JSON string to NSDictionary in Swift.
By the end of this tutorial, you will have a working Swift code example that you can use in your mobile application.
Step 1: Preparing Your JSON String
Let’s assume you have a JSON string that you want to convert into an NSDictionary. Here’s an example JSON string:
let jsonString = "{\"name\":\"Ferdous\", \"age\":25, \"city\":\"New York\"}"
Step 2: Converting JSON String to NSDictionary
To convert this JSON string into an NSDictionary, you can use the JSONSerialization class provided by Swift. This class can convert JSON data into Foundation objects like dictionaries, arrays, and strings.
Here’s how you can do it:
if let data = jsonString.data(using: .utf8) {
do {
if let jsonDictionary = try JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary {
print(jsonDictionary)
}
} catch {
print("Failed to convert JSON string to NSDictionary: \(error.localizedDescription)")
}
}
In this code:
- You first convert the JSON string into
Datausing UTF-8 encoding. - Then, you use
JSONSerialization.jsonObject(with:options:)to convert theDatainto anNSDictionary. You specify an empty options array because we don’t need to do any special processing on the JSON data. - The
as? NSDictionarypart is a conditional cast that tries to convert the result into anNSDictionary. If the conversion is successful, you print the dictionary. If not, you catch the error and print an error message.
Step 3: Handling the Result
If the conversion is successful, you’ll get an NSDictionary that you can use in your Swift code. For example, you can access values by their keys:
if let name = jsonDictionary["name"] as? String {
print("Name: \(name)")
}
This will print Name: James if the conversion was successful.
Complete Code Example
Here’s the complete code example based on the steps above. This example demonstrates how to convert a JSON string into an NSDictionary and print the name value when a button is tapped using SwiftUI.
import SwiftUI
struct ContentView: View {
func convertJsonToNSDictionary() {
let jsonString = "{\"name\":\"Ferdous\", \"age\":25, \"city\":\"New York\"}"
if let data = jsonString.data(using: .utf8) {
do {
if let jsonDictionary = try JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary {
if let name = jsonDictionary["name"] as? String {
print("Name: \(name)")
}
}
} catch {
print("Failed to convert JSON string to NSDictionary: \(error.localizedDescription)")
}
}
}
var body: some View {
VStack {
Button("Perform Request", action: {
convertJsonToNSDictionary()
})
}
}
}

Conclusion
I hope this tutorial was helpful to you.
To learn more about Swift and to find other code examples, check the following page: Swift Code Examples.
Keep coding!