获取swift中对象数组的json

获取swift中对象数组的json,json,swift,codable,Json,Swift,Codable,我想在swift中获取对象数组的json class action { var ts: Int; var winner: Int; var meta: [Int: String]; init(ts : Int, winner: Int, meta: [Int: String]) { self.ts = ts; self.winner = winner; self.meta = meta; } } var

我想在swift中获取对象数组的json

class action {
    var ts: Int;
    var winner: Int;
    var meta: [Int: String];

    init(ts : Int, winner: Int, meta: [Int: String]) {
        self.ts = ts;
        self.winner = winner;
        self.meta = meta;
    }
}

var actions:[action] = []

let thisAction = action(ts: 123, winner: 1, meta: [:]);
actions.append(thisAction);

let jsonEncoder = JSONEncoder();
let jsonData = try jsonEncoder.encode(actions);
但我有以下错误:

致命错误:数组不符合可编码,因为操作不符合可编码:file/BuildRoot/Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-900.0.74.1/src/swift/stdlib/public/core/Codable.swift,第3962行


错误消息非常清楚,您需要在Action类上继承Codable

提示1:在动作类中使用大写字母A

提示2:不要使用;,在Swift中不需要这样做

提示3:使用do-try-catch:

do {
    let jsonData = try JSONEncoder().encode(actions)
    print(jsonData)
} catch let error {
    print(error)
}
你没有说集体行动:可编码,猜猜看,它不是通过JSONECODER可编码的。[请称之为行动,而不是行动。这是一门课。]看。
do {
    let jsonData = try JSONEncoder().encode(actions)
    print(jsonData)
} catch let error {
    print(error)
}