【问题标题】:Assign SwiftyJSON object to a String Array将 SwiftyJSON 对象分配给字符串数组
【发布时间】:2017-03-10 09:19:01
【问题描述】:

我正在 swift 3 中开发一个项目并调用 Web 服务,我使用 AlamoreFire 和 SwiftyJASON (pods)。格式如下:

    APIManager.apiGet(serviceName:appURLs.mainBaseURL+appURLs.testingPureLight, parameters: params) { (json:JSON?, error:NSError?) in
            if error != nil{

                print("error:",error as Any)

            }

            print(json!)
}

因此,我得到一个 JSON 类型的 Json 响应,因此,我得到以下结构作为我的响应。

 { 
  "media": [ {
    "key" : "value" 
    "Objectarray"[
     { "Object1":"somevalue" 
          "key2":"somevalue"
          "key3":"somevalue"
     } 

     {"Object2":"somevalue"
         "key2":"somevalue"
         "key3":"somevalue"
     } 

     { "Object3":"somevalue" 
          "key2":"somevalue"
          "key3":"somevalue"
     }

    ] 
  } ]
 }

我的要求是捕获这个“Objectarray”并将其分配给一个字符串数组,这样我就可以使用它来填充我的 UITableVIew。我怎样才能做到这一点?

【问题讨论】:

  • Objectarray 包含像Object1Object2Object3 之类的键...或者您已经这样写了。
  • 对象数组有字典元素,称为 Object1、Object2、Object3,在里面只有你得到键值对。例如,在 Object1 内部可能包含一对,它可能是-> Object1{"name" : "john"}
  • 我要问的是Object1Object2Object3...是实际的键吗?
  • 是的,它们是键,但在单独的字典中,我会更新代码以使其更有意义

标签: ios uitableview swift3 alamofire swifty-json


【解决方案1】:

您可以通过这种方式获取您的Objectarray

var objects = [String]() 
if let jsonResponse = json,
   let objectArray = jsonResponse["media"][0]["Objectarray"].arrayValue {

    for object in objectArray {
        let object1 = object["Object1"].stringValue
        objects.append(object1)
    }
}

【讨论】:

  • 不,先生,因为我已经提到我想知道的是如何将它分配给字符串数组并在我的 cellForRow 方法中使用它。根据你上面写的,对象数组的类型是 JSON。不是字符串
  • 我猜有些支架丢失了。出了点问题它不起作用。这么多错误,但基本的想法虽然
  • @danutha 然后你需要正确你的代码并检查括号丢失的位置,因为在我的回答中没有丢失括号,所有左括号都有右括号。
猜你喜欢
  • 1970-01-01
  • 2015-12-24
  • 1970-01-01
  • 2010-10-09
  • 2021-12-07
  • 2013-05-11
  • 2021-07-23
  • 2015-06-25
相关资源
最近更新 更多