JSONSerializationというクラスがあってこれを使う。
JSONの文字列からオブジェクト(ArrayやDictionary)に変換する。

        let jsonStr = "[ { \"name\":\"山田太郎\", \"age\":22 }, { \"name\":\"山田花子\", \"age\":24 } ]"
        // JSON文字列をNSDataに変換
        let jsonData = jsonStr.data(using: String.Encoding.utf8)
        do {
            // DataからJSONオブジェクトに変換
            let json = try JSONSerialization.jsonObject(with: jsonData!, options: .mutableLeaves) as! Array<Dictionary<String, Any>>
            for item in json {
                if let name = item["name"], let age = item["age"] {
                    print("\(name):\(age)")
                }
            }
        } catch {
        }

オブジェクトをJSON(文字列)に変換する。オブジェクトは、NSArray、NSDirctionaryでその中の値は、NSString、NSNumber、NSDictionary、NSNullでNSDictionaryのキーはNSStringじゃないといけない。

        let json = [
            [ "name":"山田太郎", "age":22 ],
            [ "name":"山田花子", "age":24 ]
        ]
        do {
            if JSONSerialization.isValidJSONObject(json) {  // JSONに変換できるかチェック
                // JSONに変換(.prettyPrintedを指定すると見やすいように改行や空白が挿入される。)
                let jsonData = try JSONSerialization.data(withJSONObject: json, options: .prettyPrinted)
                // ↓こっちだと空白や改行が含まれない
//                let jsonData = try JSONSerialization.data(withJSONObject: json, options: [])
                // Dataを文字列に変換する。
                let jsonStr = String.init(data: jsonData, encoding: .utf8)
                if let str = jsonStr {
                    print(str)
                }
            }
        } catch {
            
        }