2016-11-21 10 views
1

ねえ、私はjsonオブジェクトを持っています。そして私は配列で多くの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) 

     } 
    } 
+0

サーバーリクエストでこのJSONを取得している場合でも、「JSON」を表示できますか? –

+0

ここにあなたの質問に回答を追加するコメントはありません。質問に追加した「連絡先」は何もないので、この完全な回答です。 –

+0

電話帳に配列を保存するにはどうしたらいいですか? –

答えて

0

はい、あなたは配列に格納することができますが、あなたはPatientタイプのstructまたはclassを定義した場合、それは多くのより明確になり、JSONデータを使用してそのプロパティを設定し、その後にPatientオブジェクトを保存配列。例えば

Patient構造体:

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

とに患者を格納する配列を初期化:あなたは、各JSONオブジェクトを読んだとき、次に

var patients = [Patient]() 

を、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) 

構造体のプロパティをOptionalと宣言しました。

+0

どうすれば構造体でできますか?私のコードを使用するためのいくつかの例を教えてください? –

+0

どうすればこの患者の配列をios documentDirectoryに保存できますか?返事してください :) –

関連する問題