使用 SwiftyJSON(和 Alamofire)解析 JSON 值

Posted

技术标签:

【中文标题】使用 SwiftyJSON(和 Alamofire)解析 JSON 值【英文标题】:Parsing JSON value with SwiftyJSON (and Alamofire) 【发布时间】:2015-01-05 23:24:05 【问题描述】:

我正在尝试从我正在测试的 REST Web 服务中解析单个值。 我了解如何拨打电话,并在“输出”窗口中看到 JSON 响应。

let request = Alamofire.request(.GET, "http://IP:PORT/jsonTest", parameters: ["s": "Ping?"])
        .responseJSON(_,_,data,_) in             
            var json = JSON(data!)                
            println(json)

控制台输出显示:

"NewDataSet":[
    "Table1":[
        "Column-A":"FirstA",
         "Column-B":"FirstB"
        ,
        "Column-A":"SecondA",
         "Column-B":"SecondB"
        ,
        "Column-A":"ThirdA",
        "Column-B":"ThirdB"
        
    ]
]

我现在想做的是仅显示 Column-A 中的第一个值 - 在本例中为“FirstA”。

我一直在尝试使用这样的代码,但到目前为止我没有得到任何结果......

println(json[0][0]["Column-A"].stringValue)

任何指针都非常感谢!

【问题讨论】:

您有一个对象,其中包含一个名为“NewDataSet”的条目。该条目是一个包含对象的数组。数组的第一个元素包含一个具有名为“Tabel1”的元素的对象。该元素是一个数组。数组的第一个元素是一个对象,包含一个名为“Column-A”的元素。您似乎忽略了除最后一个之外的所有对象。 【参考方案1】:
json["NewDataSet"][0]["Table1"][0]["Column-A"].stringValue

这就是你想要的。这是因为您的 json 以字典开头,格式为字典>数组>字典>数组>字典。请注意,json 字典用 : , : 表示,而数组用 [ , ] 表示。

【讨论】:

以上是关于使用 SwiftyJSON(和 Alamofire)解析 JSON 值的主要内容,如果未能解决你的问题,请参考以下文章

SwiftyJson 和 Alamofire 使用的解码结构

如何使用 Alamofire 和 SwiftyJSON 正确解析 JSON

如何将 RxSwift 与 AlamoFire 和 SwiftyJSON 一起使用?

无法使用“((Any))”类型的参数列表调用“JSON” - 使用 AlamoFire 和 SwiftyJSON

使用 Alamofire 和 SwiftyJSON 时对 JSON 进行排序

使用 SwiftyJSON(和 Alamofire)解析 JSON 值