gpt4 book ai didi

ios - Swift 3 解析 JSON 嵌套问题

转载 作者:搜寻专家 更新时间:2023-10-31 21:59:10 24 4
gpt4 key购买 nike

我正在尝试解析一些 json 数据,但我正在努力了解如何提取和分配嵌套值。我可以管理第一级,但当它再进一步时,我会很挣扎。

我有一个 parseProductsData 函数,它接收数据并与第一级嵌套一起正常工作。我如何解析 [“Options”: “values”],[”variants”] 的嵌套 Json 数组。

这是我的 Json。

{
products: [
{
id: 8931647873,
title: "A bug Life1123",
body_html: "
Ban neckline
Printed front
Full sleeves
Straight hem
Printed back
100% khaddar shirt without embroidery

",
vendor: "Sapphire",
product_type: "Configurable Products",
created_at: "2017-03-01T23:54:41+05:00",
handle: "a-bug-life",
updated_at: "2017-03-17T16:30:46+05:00",
published_at: "2017-01-07T12:33:00+05:00",
template_suffix: "",
published_scope: "global",
tags: "Khaddar, L, M, Women, XL, Yellow",
variants: [...],
options: [
{
id: 10702667329,
product_id: 8931647873,
name: "Size",
position: 1,
values: [
"XXS",
"S",
"M",
"L",
"XL",
"XXL"
]
},
{
id: 10702667393,
product_id: 8931647873,
name: "Color",
position: 2,
values: [
"Yellow"
]
}
],
images: [
{
id: 20808811009,
product_id: 8931647873,
position: 1,
created_at: "2017-03-01T23:54:41+05:00",
updated_at: "2017-03-01T23:54:41+05:00",
src: "https://cdn.shopify.com/s/files/1/1814/9759/products/a_bugs_life.jpg?v=1488394481",
variant_ids: []
},
{
id: 20808811073,
product_id: 8931647873,
position: 2,
created_at: "2017-03-01T23:54:41+05:00",
updated_at: "2017-03-01T23:54:41+05:00",
src: "https://cdn.shopify.com/s/files/1/1814/9759/products/a_bugs_life..jpg?v=1488394481",
variant_ids: []
},
{
id: 20808811137,
product_id: 8931647873,
position: 3,
created_at: "2017-03-01T23:54:41+05:00",
updated_at: "2017-03-01T23:54:41+05:00",
src: "https://cdn.shopify.com/s/files/1/1814/9759/products/a_bugs_life.__2.jpg?v=1488394481",
variant_ids: []
}
],
image: {...}
},

func parseProductsData() {
Alamofire.request(BASE_URL+"/admin/products.json").responseJSON { response in
let result = response.result
if let dict = result.value as? Dictionary<String, AnyObject> {
if let list = dict["products"] as? [Dictionary<String, AnyObject>] {
for i in 0..<list.count {
print(list[i])
}
}
}
}
}

最佳答案

您所要做的就是了解层次结构 和数据类型,以便您可以将其类型转换为正确的格式。在这里,您的结构主要类似于字典数组,在您的关键“产品”上,您将获取一个字典数组并将其存储到变量 say 列表中。您现在可以迭代列表并获取字典。然后,稍后您可以从字典中获取键值,如“id”、“title”、“vendor”和typecaststring。对于“options”、“images”等键,您必须再次将其类型转换为array of dictionaries 并且该过程继续进行.只需了解数据类型并将其转换为给定格式即可。

func parseProductsData() {
Alamofire.request(BASE_URL+"/admin/products.json").responseJSON { response in
let result = response.result
if let dict = result.value as? Dictionary<String, AnyObject> {
if let list = dict["products"] as? [Dictionary<String, AnyObject>] {
for dict in 0..<list {
//Now if you want to fetch the value on key "Options", you can see that your list of product holds an array Of Dictionary
//so all you have to do is

let arrOFOptions = dict["options"] as? [Dictionary<String, AnyObject>]

//Same goes for variants

let arrOfVariants = dict["variants"] as? [Dictionary<String, AnyObject>]
}
}
}
}
}

关于ios - Swift 3 解析 JSON 嵌套问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43673038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com