在这个订单详细信息数组中,我有10个字典,但是我只需要显示第一个字典,有谁可以帮助我实现这个目的?

http://www.json-generator.com/api/json/get/bUKEESvnvS?indent=2

这是我的代码如下所示

func downloadJsonWithURL() {
        let url = NSURL(string: self.url)
        URLSession.shared.dataTask(with: (url as URL?)!, completionHandler: {(data, response, error) -> Void in
            if let jsonObj = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? NSDictionary {
               self.orderdetailsArray = (jsonObj!.value(forKey: "Orders detail") as? [[String: AnyObject]])!
                for array in self.orderdetailsArray {
                    let key = "OrderId"
                    let value = "#1000501"
                    for (key,value) in array{
                    if let addressDict = array as? NSDictionary{
                        if let orderid = addressDict.value(forKey: "OrderId"){
                            self.orderid.append(orderid as! String)
                        }
                        if let orderdate = addressDict.value(forKey: "OrderDate"){
                            self.orderdate.append(orderdate as! String)
                        }
                        if let subtotal = addressDict.value(forKey: "SubTotal"){
                            self.subTotal.append(subtotal as! Int)
                        }
                        if let Shipping = addressDict.value(forKey: "Shipping"){
                            self.shippingPrice.append(Shipping as! Int)
                        }
                        if let tax = addressDict.value(forKey: "Tax"){
                            self.tax.append(tax as! Int)
                        }
                        if let grandtotal = addressDict.value(forKey: "GrandTotal"){
                            self.grandTotal.append(grandtotal as! Int)
                        }
                        if let shippingAddress = addressDict.value(forKey: "ShippingAddress"){
                            self.shippingAddress.append(shippingAddress as AnyObject)
                        }
                        if let shippingMethod = addressDict.value(forKey: "ShippingMethod"){
                            self.shippingMethod.append(shippingMethod as AnyObject)
                        }
                        if let billingAddress = addressDict.value(forKey: "BillingAddress"){
                            self.billingAddress.append(billingAddress as AnyObject)
                        }
                        if let paymentMethod = addressDict.value(forKey: "PayMentMethod"){
                            self.paymentMethod.append(paymentMethod as AnyObject)
                        }
                        self.itemsArray = addressDict.value(forKey: "Items detail") as! [[String : AnyObject]]
                    }
                }
                }
                OperationQueue.main.addOperation({
                    self.tableDetails.reloadData()
                })
            }
        }).resume()
    }

最佳答案

做这个。 :

let jsonObj = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? NSDictionary

guard let Ordersdetail = jsonObj["Orders detail"] as? [NSDictionary] else {
        print("Cannot find key 'Orderdetails' in \(jsonObj)")
        return
    }


要访问第一个词典的内容,请执行以下操作:

 var orderid = Ordersdetail[0]["OrderId"]!
 var shippingadress = Ordersdetail[0]["ShippingAddress"]!
 var total = Ordersdetail[0]["GrandTotal"]!
 var subtotal = Ordersdetail[0]["SubTotal"]!
 var tax = Ordersdetail[0]["Tax"]!
 var shipping = Ordersdetail[0]["Shipping"]!

关于ios - 在提到的网址中,我只需要从网址中获取第一本词典?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45209634/

10-14 22:00