ios - Swift如何将json按需储存在字典当中?
PHP中文网
PHP中文网 2017-04-18 09:47:32
0
1
454

新手一枚,但是实在是找不到相关的例子来学习了,所以迫不得已提问。
现在的需求是吧类似这样的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讲师

Antworte allen(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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage