Как преобразовать модель с массивом в массив JSON Swift 3 - PullRequest
0 голосов
/ 29 июня 2018

У меня есть вопрос и решение, у меня есть модель класса, и внутри нее есть массив, моя модель такая

class WillModel{
    var name: String = ""
    var documents:[WillItems] = []
    var isLFStatus : Bool = false
    var isLFShared : Bool = false
}

class WillItems{
    var documentPath: String = ""
    var documentRemark: String = ""
}

Я хочу преобразовать результат в массив JSON, как

{
 "name" : "value",
 "documents" : [
      {
       "documentPath" : "value"
       "documentRemark" : "value"
       },
      {
       "documentPath" : "value2"
       "documentRemark" : "value2"
      }
      ],
 "isLFStatus" : true,
 "isLFShared" : true
}

Я использую Swift 3, спасибо за ваши решения

1 Ответ

0 голосов
/ 29 июня 2018

Вы можете написать простой метод для ручного encode вашего model до json, как показано ниже,

func encodeWillModel(_ model: WillModel) -> [String: Any] {
    var params: [String: Any] = [:]
    params["name"] = model.name
    params["documents"] = model.documents.map({["documentPath": $0.documentPath,
                                                "documentRemark": $0.documentRemark]})
    params["isLFStatus"] = model.isLFStatus
    params["isLFShared"] = model.isLFShared
    return params
}

и вы можете передать любую модель, чтобы получить что-то вроде json,

let willModelJSON = encodeWillModel(yourModel)

Но лучшим подходом будет использование любой json библиотеки синтаксического анализа ( SwiftyJSON , ObjectMapper ), которая поддерживает Swift 3 или обновление до Swift 4 и использование Encodable/Decodable

...