ios - Swift如何将json按需储存在字典当中?
PHP中文网
PHP中文网 2017-04-18 09:47:32
[iOS讨论组]

新手一枚,但是实在是找不到相关的例子来学习了,所以迫不得已提问。
现在的需求是吧类似这样的Json存储在一个字典中,主要是相同ID的需要存在一起。

 {
  "hy_id": 5,
  "company": [
              {
              "name": "JOVIOLD"
              },
              {
              "name": "DAYCORE"
              },
              {
              "name": "ENDIPINE"
              }
              ]
  }

我尝试使用[String:AnyObject]类型的字典,但是改如何判断是相同ID呢?ID和name都可以正常获取到了,但是不知道应该怎么存储的语句

  let path: String = NSBundle.mainBundle().pathForResource("jsonData", ofType: "json")!
        let nsurl = NSURL(fileURLWithPath: path)
        let data:NSData = NSData(contentsOfURL: nsurl)!
        let dict = JSON(data:data)
        //ToDo
        
        
        for i in 0...dict.count{
            let number = dict[i]["hy_id"].intValue
            let numberS = String(number)
            let name:String = dict[i]["name"].stringValue
            //ToDo
            print("\(number)\(name)")
        }

我的目的是将这个json包储存到一个字典里,每个hy_id对应一个key,每个name放在对应的value。我现在的代码有问题,可以请您重新写一下如何存储。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
高洛峰

从iOS5开始,处理JSON可以用Foundation框架里的JSONSerialization类来处理了,专门处理JSON转字典或字典转JSON的工作。

我不知道你用的是不是SwiftyJSON,如果是的话,let dict = JSON(data:data)这句JSON的构造方法用的都是系统的JSONSerialization:

public init(data:Data, options opt: JSONSerialization.ReadingOptions = .allowFragments, error: NSErrorPointer = nil) {
        do {
            let object: Any = try JSONSerialization.jsonObject(with: data, options: opt)
            self.init(object)
        } catch let aError as NSError {
            if error != nil {
                error?.pointee = aError
            }
            self.init(NSNull())
        }
    }

如果你要换成字典的话,用SwiftJSON很简单,直接取值:

let dictThatYouWant = dict.dictionaryObject
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号