【问题标题】:How to conver my JSON to NSArray如何将我的 JSON 转换为 NSArray
【发布时间】:2017-11-29 12:13:10
【问题描述】:

我是 Swift 新手,我开始学习新的 Swift 3 我有这个作为 NSArray

var arrayName: NSArray = NSArray()

arrayName = ["name 1","name 2","name 3","name 4","name 5"]

tableview 当前打印上面的那些项目。

我想从http://api.androidhive.info/contacts/在线获取JSON

并附加 name 项目作为我的 NSArray arrayName 的内容

【问题讨论】:

  • 如果你使用 Swift 3,更喜欢像 Array ([String]) 这样的 Swift 类型,而不是 Foundation/Objective-C 的 NSArray。 NSArray 不可变(您不能添加/删除项目)。否则,您可以获取 URL 吗?因为对此有很多问题(Alamofire、URLSession 等)及其各自的答案。
  • @Larme 我使用 URLSession,我正在修改现有项目,当前项目将数组固定为 NSArray,当我获取 json 时它返回为 [String],所以我可以t 将它们附加到数组中
  • 为什么这么反对,我的问题有什么问题?我还是 iOS 新手,而且 swift :)

标签: ios json swift3 nsarray


【解决方案1】:

所以首先在共享 url 会话中获取 json 数据。 确保检查完成闭包中的成功标志。获得数据后,您可以使用 JSONSerialization 类 https://developer.apple.com/documentation/foundation/jsonserialization 对其进行反序列化。所以现在你在一个对象中有 json。现在您可以将其转换为字典。在字典中使用 dictionary["contacts"] 语法遍历到 "contacts"。接下来,将新对象转换为 [[String: AnyObject]] 表示字典数组。从那里,您可以循环并获取 name 属性。注意:除了将对象转换为 [[String: AnyObject]] 之外,您还可以将其转换为! NSArray。

【讨论】:

  • 没问题!让我知道它是否有效:) @Alamri 如果您需要参考,这里有一个示例:stackoverflow.com/questions/39517657/parse-json-swift-3
  • 我试过你说的,它给出了一个错误Value of type NSArray has no member 'append'
  • 使用数组代替... NSArrays 是不可变的。
  • 也许我不应该使用附加?还是正确使用?
  • 我使用self.arrayName= (name as! NSArray) 并且该错误消失了,但仍然在 NSAraay 上崩溃为 null,因为在获取和解析 json 之前调用了数组
猜你喜欢
  • 2016-08-05
  • 2012-02-24
  • 1970-01-01
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-19
相关资源
最近更新 更多