Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 快速解析来自怪异对象的数据(几乎是JSON)_Ios_Swift - Fatal编程技术网

Ios 快速解析来自怪异对象的数据(几乎是JSON)

Ios 快速解析来自怪异对象的数据(几乎是JSON),ios,swift,Ios,Swift,我试图从一个我还没有在swift中看到的对象中获取数据。对象的类型为Any func getMetaData(_ callback: @escaping (Error?) -> ()) { guard let accessToken = self.credentials?.accessToken else { return callback(CredentialsManagerError.noCredentials) } Au

我试图从一个我还没有在swift中看到的对象中获取数据。对象的类型为
Any

    func getMetaData(_ callback: @escaping (Error?) -> ()) {
        guard let accessToken = self.credentials?.accessToken
            else { return callback(CredentialsManagerError.noCredentials) }
        Auth0
            .users(token: accessToken)
            .get(profile!.sub, fields: ["user_metadata"], include: true)
            .start { (result) in
                switch result {
                case .success(let user):
                    print(user)
                    self.metadata = user
                    callback(nil)
                case .failure(let error):
                    callback(error)
                }
        }
    }
这个对象变成了一个字典
[String:Any]
和Any being(
print(user)
):

我得到了
user\u元数据
,得到了以下内容:

{
    fname = abc;
    lname = xyz;
}
这就是我最终想要实现的目标:

UserMetaData(fname: "abc", lname: "xyz") 

它不完全是JSON,我不知道如何使用它,正如vasian所说,我将内部对象转换为一个dictonnary,提供了一个可选的
(fname:“abc”,lname:“xyz”)
,我可以使用它

typealias(Auth0标准)
typealias ManagementObject=[字符串:任意]

在SessionManager.getMetaData()中
self.metadata=(meta[“用户\元数据”]as!ManagementObject)

当我需要获取数据时
正如vasian所说,我将内部对象转换为一个dictonnary,为我提供了一个可选的
(fname:“abc”,lname:“xyz”)
,我可以使用它

typealias(Auth0标准)
typealias ManagementObject=[字符串:任意]

在SessionManager.getMetaData()中
self.metadata=(meta[“用户\元数据”]as!ManagementObject)

当我需要获取数据时
没有关于如何解析“奇怪对象”的教程/文档。请考虑使用IDE中支持的文件类型之一。此时的任何回答都是错误的,因为没有人知道他们正在处理什么类型的文件。它看起来像是标准集合类型的字典的
描述
。似乎您的json不正确。它应该是这样的[{“user_metadata”:{“fname”:“abc”,“lname”:“xyz”}]。你可以在这个链接中查看你的json。没有关于如何解析“奇怪对象”的教程/文档。请考虑使用IDE中支持的文件类型之一。此时的任何回答都是错误的,因为没有人知道他们正在处理什么类型的文件。它看起来像是标准集合类型的字典的
描述
。似乎您的json不正确。它应该是这样的[{“user_metadata”:{“fname”:“abc”,“lname”:“xyz”}]。您可以在此链接中检查json。
UserMetaData(fname: "abc", lname: "xyz") 
let firstName = SessionManager.shared.metadata!["fname"]! as! String
let lastName = SessionManager.shared.metadata!["lname"]! as! String