Как разобрать данный JSON, который содержит массив, используя ObjectMapper

import Foundation
import ObjectMapper

class MemberActivityCollection: Mappable
{
    var TotalRows : Int = 0
    var MemberActivityList : Array<MemberActivity> = Array()
    var MemberID: Int = 0


    init(){ }   
    internal required init?(map: Map) { }

    // Mappable
    func mapping(map: Map) {
        MemberActivityList      <- map["MemberActivityList"]
        TotalRows               <- map["TotalRows"]
        MemberID                <- map["MemberID"]
    }
}

class MemberActivity: Mappable
{
    var ActivityID: Int = 0
    var fk_MemberID: Int = 0
    var ActivityDate: String!
    var ActivityFrom: String!
    var ActivityTo: String!
    var AvgPace: String!

    init(){ }
    internal required init?(map: Map) { }

    // Mappable
    func mapping(map: Map) {
        ActivityID          <- map["ActivityID"]
        fk_MemberID         <- map["fk_MemberID"]
        ActivityDate        <- map["ActivityDate"]
        ActivityFrom        <- map["ActivityFrom"]
        ActivityTo          <- map["ActivityTo"]
        AvgPace             <- map["AvgPace"]
    }
}

Обратите внимание: класс MemberActivityCollection имеет массив классов MemberActivity.

Необходимо проанализировать JSON как MemberActivityCollection

{
  "TotalRows" : 16,
  "MemberActivityList" : [
    {
      "fk_MemberID" : 47,
      "ActivityID" : 29,
      "ActivityFrom" : "18:30:00",
      "ActivityTo" : "14:30:00",
      "AvgPace" : "3.00"
    },
    {
      "fk_MemberID" : 47,
      "ActivityID" : 26,
      "ActivityFrom" : "01:07:46",
      "ActivityTo" : "05:07:00",
      "AvgPace" : "5.00"
    },
    {
      "fk_MemberID" : 47,
      "ActivityID" : 35,
      "ActivityFrom" : "09:30:00",
      "ActivityTo" : "04:15:00",
      "AvgPace" : "0.06"
    }
  ],
  "MemberID" : 47
}

Использование следующего кода для сопоставления json с объектом класса MemberActivityCollection

Я объявляю свойство MemberActivityList неправильно?

Вся идея состоит в том, чтобы отобразить json в классе MemberActivityCollection, чтобы одно из его свойств ("MemberActivityList") могло содержать подробные данные

Добиться того, что я написал следующие строки кода и не получая желаемого результата (как уже упоминалось в приведенной выше строке).

let objMAC : MemberActivityCollection = Mapper<MemberActivityCollection>().map(JSONObject: jsonData)! //Datatype of jsonData variable is JSON 

Приведенный выше оператор выдает сообщение об ошибке "EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP, subcode=0x0").

Пожалуйста, объясните правильный способ достижения этого.

0 ответов

Другие вопросы по тегам