json - 将下面提到的 Json 字符串转换为字典

标签 json swift nsjsonserialization

下面提到的是我的 JSON 字符串:

{
"StoreID": "ABC012",
"BillNo": "A000000001",
"Amount":  "1234.56",
"Auth": 96fc3411-dfa5-4df7-ada8-25b8a58ef1ea
}

我正在使用下面提到的代码进行转换

func convertToDictionary(text: String) -> [String: Any]? {
    if let data = text.data(using: .utf8) {
        do {
            return try JSONSerialization.jsonObject(with: data, options: []) as? [String : Any]
        } catch {
            print(error.localizedDescription)
        }
    }
    return nil
}

对于上述情况它返回 nil 但在以下情况下工作正常:

{
"StoreID": "BC007",
"BillNo": "M170000351",
"Amount": 1818.96
}

我不知道是什么情况,error.localizedDescription == 无法读取数据,因为它的格式不正确。

最佳答案

你的第一个 JSON 是无效的。您需要将字符串放在引号中,并且分配给 Auth 的值是一个字符串。

{
"StoreID": "ABC012",
"BillNo": "A000000001",
"Amount":  "1234.56",
"Auth": "96fc3411-dfa5-4df7-ada8-25b8a58ef1ea"
}

如果有疑问,您应该始终确认您的 JSON 有效,this是您可以使用的一种工具。

关于json - 将下面提到的 Json 字符串转换为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53829761/

相关文章:

json - JQ with Windows Batch - 选择失败

javascript - Angular 2搜索服务错误此: res. json不是函数

sql-server - OPENJSON 扩展了其他列

javascript - create-react-app Uncaught (in promise) 语法错误 : Unexpected token < in JSON at position 0

ios - 字典数组还是带数组的字典?

swift - 重新加载常规 View Controller (快速)

ios - UIAlert 上的用户交互

ios - 条件绑定(bind)的初始化程序必须具有 Optional 类型,而不是 'Error.Protocol'

c# - 从字节数组转换为字符串时,它会添加空格

objective-c - 将 NSObject 转换为 NSDictionary