【问题标题】:How to get specific value from JSON in swift如何快速从 JSON 中获取特定值
【发布时间】:2016-03-31 10:41:07
【问题描述】:

我可以成功解析我的 json 文件中的所有数据。在我的集合视图中的应用程序中,我尝试仅将 1 个图像数据解析到单元格,但我得到了与它相关的所有数据。我将与您分享 JSON 代码和解析代码,最后是模拟器的屏幕截图。我希望你能帮助我。 谢谢,

JSON 代码

{
    "retcode": "200",
    "content": [{
        "id": 3,
        "name": "X Treme",
        "desc": "Polikarbon G\u00f6vde",
        "category": "Design",
        "thumbnail": [{
            "id": 2,
            "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_red.jpg"
        }, {
            "id": 3,
            "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_orange.jpg"
        }, {
            "id": 4,
            "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_blue.jpg"
        }, {
            "id": 5,
            "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_green.jpg"
        }, {
            "id": 6,
            "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_clear.jpg"
        }, {
            "id": 7,
            "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_grey.jpg"
        }, {
            "id": 8,
            "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_slred.jpg"
        }]
    }, {
        "id": 4,
        "name": "Opal",
        "desc": "Polikarbon Sandalye",
        "category": "Design",
        "thumbnail": [{
            "id": 9,
            "thumbnail": "http:\/\/www.ertonga.com\/product_images\/opal_orange.jpg"
        }, {
            "id": 10,
            "thumbnail": "http:\/\/www.ertonga.com\/product_images\/opal_blue.jpg"
        }, {
            "id": 11,
            "thumbnail": "http:\/\/www.ertonga.com\/product_images\/opal_green.jpg"
        }]
    }],
    "error_msg": ""
}

Swift 代码

if let url = NSURL(string: urlString) {

            if let data = try? NSData(contentsOfURL: url, options: [])

            {


                do {
                    let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments)


                    var valueforname:Int = 0

                    if let blogs = json["content"] as? [[String: AnyObject]] {


                        for blog in blogs {

                            if let blog2 = blog["thumbnail"] as? [[String: AnyObject]] {

                                for blog3 in blog2 {

                                    if let blog4 = blog3["thumbnail"] as? String {

                                        var checkvalue1 = blog3["id"] as? Int





                                        if Imagearray.contains(String(checkvalue1!)) {


                                                                    }

                                        else {


                                                Imagearray.append(blog4)
                                            }
                                        }





                                    }

                                }




                        }
                    }
                }





                catch {
                    print("error serializing JSON: \(error)")
                }


            }
        }

这是屏幕截图。你可以看到不同颜色的椅子我想要每个项目只有一种颜色

【问题讨论】:

    标签: json swift parsing repeat


    【解决方案1】:

    试试这个:

    NSURL(string: urlString) {
    
        if let data = try? NSData(contentsOfURL: url, options: [])
    
        {
            do {
                let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments)
                var valueforname:Int = 0
                if let blogs = json["content"] as? [[String: AnyObject]] {
                    for blog in blogs {
                        if let blog2 = blog["thumbnail"] as? [[String: AnyObject]] {
                            if let blog4 = blog2["thumbnail"] as? String
                            {
                                Imagearray.append(blog4)
                            }
                        }
                    }
                }
            }
            catch {
                print("error serializing JSON: \(error)")
            }
        }
    }
    

    【讨论】:

    • 感谢您回答我,但我收到错误提示无法使用“字符串”类型的索引为值类型 [[String: AnyObhect]] 下标
    • 我认为我们不能不使用 blog2[thumbnail] as String
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 2018-08-10
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多