📜  swift 将字典转换为 json - Swift (1)

📅  最后修改于: 2023-12-03 15:35:12.682000             🧑  作者: Mango

Swift将字典转换为JSON

在iOS开发中,我们经常需要将字典转换为JSON字符串,以便于传输数据或者存储数据。在Swift中,我们可以通过使用JSONSerialization类来完成这个过程。

将字典转换为JSON字符串
// 定义一个字典
let dict: [String: Any] = ["name": "张三", "age": 18, "gender": "male"]

do {
    // 将字典转换成JSON数据
    let jsonData = try JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted)

    // 将JSON数据转换成字符串
    let jsonString = String(data: jsonData, encoding: .utf8)

    print(jsonString ?? "")
} catch {
    print(error.localizedDescription)
}

上面的代码中,我们先定义了一个字典dict,里面包括了nameagegender三个属性。然后我们使用JSONSerialization类的data(withJSONObject:options:)方法将字典转换成JSON数据,使用.prettyPrinted选项可以让输出的数据更易读。接着,我们通过将JSON数据转换成字符串的方式来输出。

将JSON字符串转换为字典
// 定义一个JSON字符串
let jsonString = "{\"name\":\"张三\",\"age\":18,\"gender\":\"male\"}"

do {
    // 将JSON字符串转换成JSON数据
    let jsonData = jsonString.data(using: .utf8)!

    // 将JSON数据转换成字典
    let dict = try JSONSerialization.jsonObject(with: jsonData, options: []) as! [String: Any]

    print(dict)
} catch {
    print(error.localizedDescription)
}

上面的代码中,我们先定义了一个JSON字符串jsonString,与之前的字典dict内容一致。接着,我们使用JSONSerialization类的jsonObject(with:options:)方法将JSON数据转换成字典,[]表示不进行任何选项设置。由于在这里我们确定了字典中的数据类型,因此我们使用了一个强制类型转换as! [String: Any]将其转换为一个[String: Any]类型的字典。

通过以上两个示例代码,我们可以灵活地根据需要将字典和JSON字符串进行转换,方便我们在开发过程中进行数据的传输和存储。