【问题标题】:how to save multiple json object in array如何将多个json对象保存在数组中
【发布时间】:2016-11-21 03:06:18
【问题描述】:

大家好,我有 json 对象。我想在数组中讲述许多 json 对象。我的意思是我想将患者信息保存在 json 对象中。这是工作。但我无法在 json 对象中保存多个患者信息。我应该在数组中插入我的 json 对象吗?

    let jsonData = try! JSONSerialization.data(withJSONObject: para, options: JSONSerialization.WritingOptions.init(rawValue: 0))

    jsonString = NSString(data: jsonData, encoding: String.Encoding.utf8.rawValue) as! String

    print(jsonString)

    do {
        let SavedPatient = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions.allowFragments) as! [String : AnyObject]
        print("SavedPatient \(SavedPatient)")
        if let arrJSON = SavedPatient["contacts"] {
            for index in 0...arrJSON.count-1 {
                let aObject = arrJSON[index] as! [String : AnyObject]
                print("object in array \(aObject)")
            }
        }
    }
    catch {
        print(error)
    }

    let utf8str = jsonString.data(using: String.Encoding.utf8)
    if let base64Encoded = utf8str?.base64EncodedString(options: NSData.Base64EncodingOptions(rawValue: 0))
    {
        let encodedData = NSData(base64Encoded: base64Encoded, options:NSData.Base64DecodingOptions(rawValue:0))
        //let data = encodedData
        if encodedData != nil {
            //write
            encodedData?.write(toFile: "\(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])/offline", atomically: true)

        }
    }

【问题讨论】:

  • 您能否显示您的JSON 是否也在服务器请求中获取此 JSON?
  • Not here in comment add response in your question,这也是完整的回复,因为contacts 没有您在问题中添加的内容。
  • 如何将数组保存到手机目录?

标签: arrays json swift


【解决方案1】:

是的,您可以将它们存储在一个数组中,但是如果您为您的 Patient 类型定义了 structclass,使用 JSON 数据设置其属性,然后存储 @ 会更清晰987654324@ 数组中的对象。

例如,Patient 结构:

struct Patient {
    var lastName: String?
    var firstName: String?
    // etc.
}

并初始化一个数组来存储患者:

var patients = [Patient]()

然后,当您读取每个 JSON 对象时,创建一个 Patient

var lastName = aObject["lastName"]    // or whatever your JSON field is named
var firstName = aObject["firstName"]  // or whatever your JSON field is named
var patient = Patient(lastName: lastName, firstName: firstName /*, etc. */)

并将其粘贴到数组中:

patients.append(patient)

请注意,我将结构的属性声明为 Optionals。

【讨论】:

  • 如何使用 struct 来实现?请给我一些使用我的代码的例子?
  • 如何将此患者数组保存到 ios documentDirectory?请回复我:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 2020-11-27
  • 2019-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-09
相关资源
最近更新 更多