how to parsing Json with SwiftyJson from woocommerce api?

蓝咒 提交于 2019-12-04 06:26:58

问题


I want to parse JSON using alamofire and swiftyjson

I try get JSON(value) like this

let headers: HTTPHeaders = [
        "Authorization": "Basic Y2tfZTA1ZGNmMDkwNTNmODEyMGQwYTMyOGI4YzJkY2QzOTY5MmE5ZDAyNzpjc18zYzZiYWY2NTM0NDhkNDM4ZDM1ZDNmNDY5Nzg5ZGM2Y2VhZGRiZjNl",
        "Accept": "application/json"
    ]

    Alamofire.request("https://woo.demoapp.xyz/wp-json/wc/v2/products?category=15", headers: headers).responseJSON { response in
        debugPrint(response)

        if let json = response.result.value {
            print("JSON: \(json)")

        }

    }

here is the JSON data from woocommerce api

[
{
    "id": 29,
    "name": "Sunglasses",
    "permalink": "https://woo.demoapp.xyz/product/sunglasses/",
    "description": "<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>\n",
    "images": [
        {
            "id": 17,
            "src": "https://woo.demoapp.xyz/wp-content/uploads/2017/10/sunglasses.jpg",
            "name": "Sunglasses",

        }
    ],

The issue is i am not able to populate an array with what I thought would be correct code to parse a JSON file with swiftyJSON in to tableview.


回答1:


please use this type

let headers: HTTPHeaders = [
    "Authorization": "Basic Y2tfZTA1ZGNmMDkwNTNmODEyMGQwYTMyOGI4YzJkY2QzOTY5MmE5ZDAyNzpjc18zYzZiYWY2NTM0NDhkNDM4ZDM1ZDNmNDY5Nzg5ZGM2Y2VhZGRiZjNl",
    "Accept": "application/json"
]

Alamofire.request("https://woo.demoapp.xyz/wp-json/wc/v2/products?category=15", headers: headers).responseJSON { response in
    debugPrint(response)

    if let json = response.result.value {
        print("JSON: \(json)")
        let swjson = JSON(response.result.value!)
        print(swjson)
        // callback(swjson,nil)
        var myMutableDictionary = [AnyHashable: Any]()
        myMutableDictionary["myArray"] = swjson

        let sss =   JSON(myMutableDictionary as Any)

        let arrdata =    sss["myArray"].arrayObject

        var productArray = NSArray()

        productArray = arrdata as! [[String:AnyObject]] as NSArray

        print(productArray.count)

        yourtableview.reload()
    }

}

//table view method

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return productArray.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! CustomeCell

    let dic = productArray[indexPath.row] as! NSDictionary
    let name =  dic.object(forKey: "name") as! String

    return cell
}



回答2:


Upload Image With Parameter Using Alamofire

let parameters = ["category":"15" as AnyObject]

let headers: HTTPHeaders = [
    "Authorization": "Basic Y2tfZTA1ZGNmMDkwNTNmODEyMGQwYTMyOGI4YzJkY2QzOTY5MmE5ZDAyNzpjc18zYzZiYWY2NTM0NDhkNDM4ZDM1ZDNmNDY5Nzg5ZGM2Y2VhZGRiZjNl",
    "Accept": "application/json"
]

Alamofire.upload(multipartFormData: { multipartFormData in

    multipartFormData.append(fileUrl , withName: "image" , fileName: yourfilename + ".yourfiletype", mimeType: "yourfiletype")

    for (key, value) in parameters {
        multipartFormData.append(value.data(using: String.Encoding.utf8.rawValue)!, withName: key)
    }

},to: "https://woo.demoapp.xyz/wp-json/wc/v2/products", method: .post, headers: headers ,
  encodingCompletion: { encodingResult in
    switch encodingResult {
    case .success(let upload, _, _):
        upload.response { [weak self] response in
            guard self != nil else {
                return
            }

        }

        upload.responseJSON {  response in

            let responseJSON = response.result.value as! NSDictionary


        }

    case .failure(let encodingError):
        print("error:\(encodingError)")

    }


})


来源:https://stackoverflow.com/questions/46945764/how-to-parsing-json-with-swiftyjson-from-woocommerce-api

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!