字符串到JSON对象转换iOS Swift

时间:2017-10-28 06:25:18

标签: ios json swift

从服务器,我收到以下字符串为(AnyHashable:String)

{Type:1, OrderId:174}

我知道它不是一个有效的Json String,但我必须单独处理 Type OrderId

我正在将字符串转换为JSONObject但由于我的字符串无效,因此在代码下面没有转换它。

if let tag = notification.request.content.userInfo["tag"]{
        if let json = try? JSONSerialization.data(withJSONObject: tag, options: []) {
            // here `json` is your JSON data
            print(json)
        }
    }

任何人都可以建议我应该怎样做才能获得Type和OrderId值,以便我能处理响应?或者我必须将字符串转换为json,然后转换为JSONObject?

1 个答案:

答案 0 :(得分:2)

由于字符串无效JSON,您必须手动转换它。

代码

  • 删除前导和尾随大括号。
  • ", "拆分字符串。
  • 将每个项目转换为[String:Int]

它假设所有键都是String,所有值都是Int

let string = "{Type:1, OrderId:174}"
let trimmedString = string.trimmingCharacters(in: CharacterSet(charactersIn: "{}"))
let components = trimmedString.components(separatedBy: ", ")
var result = [String:Int]()
_ = components.map { item in
    let keyValue = item.components(separatedBy: ":")
    result[keyValue[0]] = Int(keyValue[1])
}

控制台:

["Type": 1, "OrderId": 174]