将 SwiftyJSON 对象分配给字符串数组

Posted

技术标签:

【中文标题】将 SwiftyJSON 对象分配给字符串数组【英文标题】:Assign SwiftyJSON object to a String Array 【发布时间】: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...是实际的键吗? 是的,它们是键,但在单独的字典中,我会更新代码以使其更有意义 【参考方案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 然后你需要正确你的代码并检查括号丢失的位置,因为在我的回答中没有丢失括号,所有左括号都有右括号。

以上是关于将 SwiftyJSON 对象分配给字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

使用 SwiftyJSON 将 JSONArray 解析为字符串数组

如何重写此代码,将字符串列表分配给字符串对象的集合?

SwiftyJSON - 可以检查对象类型吗?

使用 SwiftyJSON 将元组数组转换为 JSON 字符串

从 SwiftyJSON API 分配解析的 JSON 显示错误

SwiftyJSON 实现 json 字符串到 swift 对象