从数组中获取字典数据

时间:2018-06-26 07:09:04

标签: ios swift swift3 swift4

{
"valueSet": true,
"valueList": [
    {},
    {
        "conId": "003q000000jvwIrAAI"
    }
],
"httpCode": 200,
"errorSet": false,
"errorList": []
}

这是响应,这是我从服务器获得的信息。但是实际上我是新手,所以我不知道如何获取“ conId”的值。我正在做下面的代码来获取valueList,但是在那之后如何获取它,我没有得到如何获取“ conId”。我需要在回调中以字符串形式发送该conId。

let parseResult: [String : AnyObject]
                do{
                    parseResult = try JSONSerialization.jsonObject(with: jsonData, options:.allowFragments) as! [String : AnyObject]
                    print("\(parseResult)")
                } catch {
                    print("Could not parse data as Json \(String(describing: data))")
                    return
                }

                if let valueSet = parseResult["valueSet"] {
                    let value  =  valueSet as! Bool
                    print("statusCode: \(httpResponse.statusCode)")
                    if let valueList = parseResult["valueList"] {
                        print(valueList)
                    if(httpResponse.statusCode == Constants.KNetworkSuccessCode) && (value == true) {
                        callback(httpResponse.statusCode, value, "")
                    }else {
                        callback(httpResponse.statusCode, value, "")
                    }
                    }
                }

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式获取<button class="a b active"></button> <button class="c d active"></button> <button class="e f active"></button>的值...

conId

答案 1 :(得分:0)

您已经关闭。您需要将valueList转换为字典数组,如下所示:

if let valueList = parseResult["valueList"] as? [[String: String]] {

然后,您可以遍历valueList来查找所需内容,或直接使用valueList[1]["conId"]访问它。

请注意,我使用as? [[String: String]]确保将valueList作为正确的数据类型返回,否则它将为nil并且失败if let。我建议对您的演员使用as?而不是as!,这样您就可以以这种方式捕获错误。