首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Swift中解析特定的JSON

如何在Swift中解析特定的JSON
EN

Stack Overflow用户
提问于 2018-10-23 00:45:12
回答 1查看 165关注 0票数 1

为了解析JSON,正如我在web上发现的那样,我通常使用这种代码:

guard let results = receivedUserJSON["results"] as? [String: Any] else {
    print("Error interpreting results")
    return
}

这一次我有一个问题,因为它似乎结束在这个守卫的其他let。JSON的结构如下:

{
    "results": [{
        "gender": "female",
        "name": {
            "title": "mrs",
            "first": "silene",
            "last": "almeida"
        },
        "location": {
            "street": "2594 rua maranhão ",
            "city": "pouso alegre",
            "state": "distrito federal",
            "postcode": 20447,
            "coordinates": {
                "latitude": "-70.0198",
                "longitude": "123.6577"
            },
            "timezone": {
                "offset": "+4:30",
                "description": "Kabul"
            }
        },
        "email": "silene.almeida@example.com",
        "login": {
            "uuid": "d06a46b3-1c00-42be-b8fc-d271bf901f7d",
            "username": "silversnake251",
            "password": "ventura",
            "salt": "UcckU6RG",
            "md5": "7c8c4129587c61da01ca7cf4f88353c5",
            "sha1": "6cbf7ec377ff4ebad5a392ec487343bf613858ef",
            "sha256": "8dedf3649fb833a1936b8885627b86c6cf02062eb74f727b2cbd674a30f73e75"
        },
        "dob": {
            "date": "1969-07-13T00:58:26Z",
            "age": 49
        },
        "registered": {
            "date": "2003-09-28T09:44:56Z",
            "age": 15
        },
        "phone": "(95) 0094-8716",
        "cell": "(20) 1014-3529",
        "id": {
            "name": "",
            "value": null
        },
        "picture": {
            "large": "https://randomuser.me/api/portraits/women/66.jpg",
            "medium": "https://randomuser.me/api/portraits/med/women/66.jpg",
            "thumbnail": "https://randomuser.me/api/portraits/thumb/women/66.jpg"
        },
        "nat": "BR"
    }],
    "info": {
        "seed": "dd971cddf636d2d7",
        "results": 1,
        "page": 1,
        "version": "1.2"
    }
}

我应该怎么做才能正确地解析这个JSON?我不喜欢使用可编码的解决方案,因为我不需要所有这些值。

PS:我知道json是正确的,因为我尝试并打印了它:

if let JSONString = String(data: responseData, encoding: String.Encoding.utf8) {
    print(JSONString)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-23 00:50:33

results是一个数组

guard let results = receivedUserJSON["results"] as? [[String:Any]] else {
            print("Error interpreting results")
            return
        }

我没有看到它是一个数组的值,因为它包含1个元素,所以你可以考虑修改这个json

当前结构

{
    "results": [{}],
    "info": {
        "seed": "dd971cddf636d2d7",
        "results": 1,
        "page": 1,
        "version": "1.2"
    }
}

您可以将其更改为

{
    "results": {},
    "info": {
        "seed": "dd971cddf636d2d7",
        "results": 1,
        "page": 1,
        "version": "1.2"
    }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52934079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档