swift/Sources/TeaUtils/Extension.swift (31 lines of code) (raw):
import Foundation
extension String {
private static let randomDict = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
func toBytes() -> [UInt8] {
[UInt8](self.utf8)
}
func jsonDecode() -> [String: Any] {
let jsonData: Data = self.data(using: .utf8)!
guard let data = try? JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers) as? [String: Any] else {
return [String: Any]()
}
return data
}
func urlEncode() -> String {
let unreserved = "*-._"
let allowedCharacterSet = NSMutableCharacterSet.alphanumeric()
allowedCharacterSet.addCharacters(in: unreserved)
allowedCharacterSet.addCharacters(in: " ")
var encoded = addingPercentEncoding(withAllowedCharacters: allowedCharacterSet as CharacterSet)
encoded = encoded?.replacingOccurrences(of: " ", with: "%20")
return encoded ?? ""
}
func isNumber() -> Bool {
!isEmpty && rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) == nil
}
}
extension Date {
public func toTimestamp() -> TimeInterval {
TimeInterval(self.timeIntervalSince1970)
}
}