                 lines.append("\(indent)let \(name.propertyName(meta: meta)) = json[\"\(name)\"] as? [\(propertyType.name)]")
             case .enum:
                 lines.append("\(indent)let \(name.propertyName(meta: meta))RawValues = json[\"\(name)\"] as? [\(self.type)]")
-                lines.append("\(indent)let \(name.propertyName(meta: meta)) = \(name.propertyName(meta: meta))RawValues.flatMap({ \(propertyType.name)(rawValue: $0) }).flatMap({ $0 })")
+                lines.append("\(indent)let \(name.propertyName(meta: meta)) = \(name.propertyName(meta: meta))RawValues.flatMap({ \(propertyType.name.removedQuotationMark())(rawValue: $0) }).flatMap({ $0 })")
             }
             lines.append("\(indent)let \(name.propertyName(meta: meta)) = json[\"\(name)\"] as? [\(self.type)]")
         case .object:

                lines.append("\(indent)let \(key.propertyName(meta: meta)) = json[\"\(key)\"] as? \(propertyType.name)")
            case .enum:
                lines.append("\(indent)let \(key.propertyName(meta: meta))RawValue = json[\"\(key)\"] as? \(self.type)")
                lines.append("\(indent)let \(key.propertyName(meta: meta)) = \(key.propertyName(meta: meta))RawValue.flatMap{( \(propertyType.name)(rawValue: $0) )}")
            }
        case let .object(name, _, _):
            let jsonDictionary = "\(name.propertyName(meta: meta))JSONDictionary"

                        lines.append("\(indent)guard let \(name.propertyName(meta: meta)) = json[\"\(name)\"] as? [\(propertyType.name)] else { return nil }")
                    case .enum:
                        lines.append("\(indent)guard let \(name.propertyName(meta: meta))RawValue = json[\"\(name)\"] as? [\(self.type)])] else { return nil }")
                        lines.append("\(indent)guard let \(name.propertyName(meta: meta)) = \(propertyType.name.removedQuotationMark())(rawValue: \(name.propertyName(meta: meta))RawValue) else { return nil }")
                    }
                }
            } else {
