具有键值

时间:2016-04-10 22:14:25

标签: json swift

有没有人知道如何在数组的索引处获取对象,使用特定键的值,并将其设置为字符串?

我过去常常在Objective-C中这样做,但我无法弄清楚如何在Swift中做到这一点:

NSString *rT = [[self.rA objectAtIndex:0] valueForKey:@"Value"];

我尝试过不同的事情,但他们不能工作:

if let JSON = response.result.value {
   print("JSON: \(JSON)")
   var name: String? = self.rA[0].valueForKey("item_1") as? String
}

端点:

[
    {
        "item_1": "Austin",
        "item_2": "Texas"
    }
]

日志记录:

2016-04-01 13:35:42.787 A[66185:7391524] Response Array: (
        {
        "item_1" = Austin;
        "item_2" = Texas;
    }
)

1 个答案:

答案 0 :(得分:0)

我假设你有类似字典数组的东西,所以我在这里做了一些测试它是示例代码:

<强>更新

let jsonString = "[ { \"item_1\": \"Austin\", \"item_2\": \"Texas\" }, { \"item_3\": \"Austin3\", \"item_4\": \"Texas4\" } ]"
var array = []
do {
    array = try NSJSONSerialization.JSONObjectWithData(jsonString.dataUsingEncoding(NSUTF8StringEncoding)!, options:.AllowFragments) as! NSArray
} catch {
    print(error)
}

if let unwrappedValue = (array[0]["item_1"]){
    print(unwrappedValue)
}

它将返回一个可选项,因此最好使用if let语句来解包值

对于您的使用,此代码应如下所示:

if let JSON = response.result.value {
    if let unwrappedValue = (JSON[0]["item_1"]){
        print(unwrappedValue)
    }
}