首页 > 解决方案 > 使用多核解析 JSON

问题描述

iOS 设备正在变得越来越好,拥有更多内核,但我们在解析 JSON 时如何从中受益?

目前,我正在使用 JSONDecoder() 进行 JSON 解析。有没有办法让我们更快地做到这一点?也许使用多线程解析部分等。

任何提示/指针将不胜感激。

    import Foundation
    
    let filePath = Bundle.main.path(forResource: "json", ofType: "json")
    
    struct Vehicle: Codable {
        private let color: String
        private let tires: [Tire]
        private let number: String
    }
    
    struct Tire: Codable {
        private let company: String
        private let isNew: Bool
    }
    
    func parseData(_ data: Data) {
        let decoder = JSONDecoder()
        try? decoder.decode([Vehicle].self, from: data)
    }
    
    func modifiedParsing(_ data: Data) {
        
    }
    
    let data = try String(contentsOfFile: filePath!).data(using: .utf8)
    
    let date = Date()
    let start = date.timeIntervalSince1970
    
    //parseData(data!)
    
    let end = Date().timeIntervalSince1970
    
    print("Time Taken \(end-start)")
    
    /*
     Initial Times: [3.728722095489502, 3.5913820266723633, 3.5568389892578125, 3.534559965133667, 3.506725311279297]
     After Changes
     */

标签: iosjsonswiftjsondecoder

解决方案


我想让 JSON 解析更快。对于正在寻找好的解决方案的任何人,请参考:https ://github.com/bwhiteley/JSONShootout

元帅比可编码更快。


推荐阅读