123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- //
- // SBTPostNetWork.swift
- // SolarBT
- //
- // Created by weclouds on 2019/8/9.
- // Copyright © 2019 weclouds. All rights reserved.
- //
- import UIKit
- import PPNetworkHelper
- struct SBTEncoder {
- public static func encoder<T>(toString model:T) ->String? where T:Encodable{
- let encoder = JSONEncoder()
- encoder.outputFormatting = .prettyPrinted
- guard let data = try? encoder.encode(model) else { return nil }
- guard let jsonStr = String(data: data, encoding: .utf8) else { return nil }
- return jsonStr
- }
- public static func encoder<T>(toDictionary model: T)->[String:Any]? where T:Encodable{
- let encoder = JSONEncoder()
- guard let data = try? encoder.encode(model) else { return nil }
- guard let dict = try? JSONSerialization.jsonObject(with: data, options: .mutableLeaves) else { return nil }
- return (dict as! [String : Any])
- }
-
-
- public static func convertStringToDictionary(text: String) -> [String:AnyObject]? {
- if let data = text.data(using: String.Encoding.utf8) {
- do {
- return try JSONSerialization.jsonObject(with: data, options: [JSONSerialization.ReadingOptions.init(rawValue: 0)]) as? [String:AnyObject]
- } catch let error as NSError {
- print(error)
- }
- }
- return nil
- }
-
- public static func convertDictionaryToString(dict:[String:AnyObject]) -> String {
- var result:String = ""
- do {
- //如果设置options为JSONSerialization.WritingOptions.prettyPrinted,则打印格式更好阅读
- let jsonData = try JSONSerialization.data(withJSONObject: dict, options: JSONSerialization.WritingOptions.init(rawValue: 0))
-
- if let JSONString = String(data: jsonData, encoding: String.Encoding.utf8) {
- result = JSONString
- }
-
- } catch {
- result = ""
- }
- return result
- }
-
- public static func convertArrayToString(arr:[AnyObject]) -> String {
- var result:String = ""
- do {
- let jsonData = try JSONSerialization.data(withJSONObject: arr, options: JSONSerialization.WritingOptions.init(rawValue: 0))
-
- if let JSONString = String(data: jsonData, encoding: String.Encoding.utf8) {
- result = JSONString
- }
-
- } catch {
- result = ""
- }
- return result
- }
- }
- extension Dictionary where Key: ExpressibleByStringLiteral, Value:AnyObject {
-
- var jsonString:String {
- do {
- let stringData = try JSONSerialization.data(withJSONObject: self as NSDictionary, options: JSONSerialization.WritingOptions.prettyPrinted)
- if let string = String(data: stringData, encoding: String.Encoding.utf8){
- return string
- }
- } catch _ {
-
- }
- return ""
- }
- }
- struct Device_Super : Codable {
- var deviceList:[Device_Post]!
- }
- struct Device_Post : Codable {
- var type: String!//设备类型
- var number : String! //设备序列号
- var name : String! //设备名称
- var model : String?//设备型号
- var hardwareVersion: String?//硬件版本
- var softwareVarsion : String? //软件版本
- var productionDate : String?//生产日期
- var macAddress :String?//mac地址
- var productionBatch :String? //生产批次
- }
- class SBTPostNetWork: NSObject {
- override init() {
- super.init()
- }
- func postDeviceInfo(_ paramters :Data) {
- // let jsonstring = SBTEncoder.encoder(toDictionary: model)
- // log.debug("jsonstring ---\(jsonstring)")
-
- SBTHttpTool.shareInstance.startUpload("http://www.solar-bt.com/api/app/save", parmeters: paramters, successHandler: { (respondObject) in
- log.debug("d返回的的数据---\(respondObject)")
- let json = SBTEncoder.convertStringToDictionary(text: respondObject)
- let msg = json!["msg"] as! String
- log.debug("\n--- 请求结果 -- \(msg)")
-
- }) { (error) in
- log.debug("错误信息 ---\(error)")
- }
- }
- //模型转字典
- }
|